mysql關於外來鍵設定

2021-08-10 04:22:42 字數 1351 閱讀 3734

今天在設計酒店管理系統時走了很多彎路

1.mysql使用的預設資料庫引擎myisam並不能很好支援外來鍵,事務等操作,外來鍵總是設定不上,需要將引擎改為innodb,這個是最完善支援各種sql操作的。(engine=innodb)

2.在最初設計資料庫是就應當把所有關係想好,確認關係正確再去生成資料庫,今天就是外來鍵設定的不對,整個資料庫的邏輯都錯了,只好刪掉資料庫,用power designer重新設計資料庫。

3.關於外來鍵

create table roominfo

(r_code               char(4) not null,

r_type               char(10) not null,

r_price              float(8,2) not null,

r_iflive             bool not null,

r_floor              int not null,

r_notes              longtext,

primary key (r_code, r_type)

) engine=innodb default charset=gbk;

create table orderinfo

(od_code              char(15) not null,

r_code               char(4),

r_type               char(10),

od_intime            datetime not null,

od_outtime           datetime not null,

od_pay               float(8,2) not null,

od_hphone            char(11),

od_notes             longtext,

primary key (od_code)

) engine=innodb default charset=gbk;

alter table orderinfo add constraint fk_relationship_1 foreign key (r_code, r_type)

references roominfo (r_code, r_type) on delete cascade on update cascade;

在orderinfo表中設定外來鍵r_code, r_type(屬於表roominfo)

在新增資訊時,應該先新增roominfo的資訊,再新增orderinfo,不然直接新增orderinfo操作不會被允許。

Mysql外來鍵設定

為已經新增好的資料表新增外來鍵 語法 alter table 表名 add constraint fk id foreign key 你的外來鍵欄位名 references 外表表名 對應的表的主鍵欄位名 例 alter table tb active add constraint fk id fo...

Mysql 外來鍵設定

外來鍵的作用 保持資料一致性,完整性,主要目的是控制儲存在外鍵表中的資料。使兩張表形成關聯,外來鍵只能引用外表中的列的值!例如 a b 兩個表 a表中存有 客戶號,客戶名稱 b表中存有 每個客戶的訂單 有了外來鍵後 你只能在確信b 表中沒有客戶x的訂單後,才可以在a表中刪除客戶x 建立外來鍵的前提 ...

Mysql 外來鍵設定

mysql外來鍵設定詳解 1 外來鍵的使用 外來鍵的作用,主要有兩個 乙個是讓資料庫自己通過外來鍵來保證資料的完整性和一致性 乙個就是能夠增加er圖的可讀性 有些人認為外來鍵的建立會給開發時運算元據庫帶來很大的麻煩.因為資料庫有時候會由於沒有通過外來鍵的檢測而使得開發人員刪除,插入操作失敗.他們覺得...