Ⅰ 怎樣用sql語句在MYSQL中創建外鍵約束關系
alter table table_name add constraint fk_column_id foreign key(column) references 主鍵表 (column_id);
Ⅱ MySql如何創建外鍵
create
table
volunteer(
志願者編號
varchar(6)
not
null,
志願者姓名
varchar(8),
班級編號
varchar(4),
constraint
PK_V
primary
key
(志願者編號));
create
table
class(
班級編號
varchar(4),
班級名稱
varchar(20),
學院
varchar(20),
constraint
PK_C
primary
key(班級編號),
班級編號
varchar
foreign
key
references
volunteer(班級編號));
你這個試下,我試了可以的
希望可以幫到你
SQL
創建外鍵語句的方法:constraint
外鍵名字
foreign
key
references
外鍵表(外鍵欄位)
Ⅲ mysql 創建外鍵sql語句
alter table OrderInfo
add constraint FK3C0469F99FC6869
foreign key (userID)
references UserInfo;
FK3C0469F99FC6869 這個是外鍵名稱,自己起
Ⅳ 在mysql中怎麼添加foreign key
MySQL中,InnoDB引擎類型的表支持了外鍵約束,MyISAM類型暫時不支持外鍵。
建立外鍵關系的兩個表的列必須是數據類型相似,也就是可以相互轉換類型的列,比如int和tinyint可以,而int和char則不可以;此外,聯合主鍵在MSSQL中建立外鍵會出現一些情況,不建議使用。
外鍵的好處:可以使得兩張表關聯,保證數據的一致性和實現一些級聯操作。
外鍵的定義語法:
[CONSTRAINTsymbol]FOREIGNKEY[id](index_col_name,…)
REFERENCEStbl_name(index_col_name,…)
[ONDELETE{RESTRICT|CASCADE|SETNULL|NOACTION|SETDEFAULT}]
[ONUPDATE{RESTRICT|CASCADE|SETNULL|NOACTION|SETDEFAULT}]
該語法可以在 CREATE TABLE 和 ALTER TABLE 時使用,如果不指定CONSTRAINT symbol,MYSQL會自動生成一個名字。指定約束名稱可以方便維護,刪除約束可以用
ALTERTABLEtbl_nameDROPFOREIGNKEYsymbol
語句快速刪掉。
ON DELETE、ON UPDATE表示事件觸發限制,可設參數:
RESTRICT(限制外表中的外鍵改動)
CASCADE(跟隨外鍵改動)
SET NULL(設空值)
SET DEFAULT(設默認值)
NO ACTION(無動作,默認的)
Ⅳ mysql添加外鍵的操作要自己輸
mysql增加外鍵的方法:1、在CREATE TABLE語句中,通過FOREIGN KEY關鍵字來添加外鍵;2、在ALTER TABLE語句中,通過ADD和FOREIGN KEY關鍵字來添加外鍵。
推薦課程:MySQL教程。
MySQL 外鍵約束(FOREIGN KEY)是表的一個特殊欄位,經常與主鍵約束一起使用。對於兩個具有關聯關系的表而言,相關聯欄位中主鍵所在的表就是主表(父表),外鍵所在的表就是從表(子表)。
外鍵用來建立主表與從表的關聯關系,為兩個表的數據建立連接,約束兩個表中數據的一致性和完整性。比如,一個水果攤,只有蘋果、桃子、李子、西瓜等 4 種水果,那麼,你來到水果攤要買水果就只能選擇蘋果、桃子、李子和西瓜,其它的水果都是不能購買的。
主表刪除某條記錄時,從表中與之對應的記錄也必須有相應的改變。一個表可以有一個或多個外鍵,外鍵可以為空值,若不為空值,則每一個外鍵的值必須等於主表中主鍵的某個值。
定義外鍵時,需要遵守下列規則:
主表必須已經存在於資料庫中,或者是當前正在創建的表。如果是後一種情況,則主表與從表是同一個表,這樣的表稱為自參照表,這種結構稱為自參照完整性。
必須為主表定義主鍵。
主鍵不能包含空值,但允許在外鍵中出現空值。也就是說,只要外鍵的每個非空值出現在指定的主鍵中,這個外鍵的內容就是正確的。
在主表的表名後面指定列名或列名的組合。這個列或列的組合必須是主表的主鍵或候選鍵。
外鍵中列的數目必須和主表的主鍵中列的數目相同。
外鍵中列的數據類型必須和主表主鍵中對應列的數據類型相同。
在創建表時設置外鍵約束
在 CREATE TABLE 語句中,通過 FOREIGN KEY 關鍵字來指定外鍵,具體的語法格式如下:
1
2
[CONSTRAINT <外鍵名>] FOREIGN KEY 欄位名 [,欄位名2,…]
REFERENCES <主表名> 主鍵列1 [,主鍵列2,…]
例 1
為了展現表與表之間的外鍵關系,本例在 test_db 資料庫中創建一個部門表 tb_dept1,表結構如下表所示。
創建 tb_dept1 的 SQL 語句和運行結果如下所示。
1
2
3
4
5
6
7
mysql> CREATE TABLE tb_dept1
-> (
-> id INT(11) PRIMARY KEY,
-> name VARCHAR(22) NOT NULL,
-> location VARCHAR(50)
-> );
Query OK, 0 rows affected (0.37 sec)
創建數據表 tb_emp6,並在表 tb_emp6 上創建外鍵約束,讓它的鍵 deptId 作為外鍵關聯到表 tb_dept1 的主鍵 id,SQL 語句和運行結果如下所示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> CREATE TABLE tb_emp6
-> (
-> id INT(11) PRIMARY KEY,
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT,
-> CONSTRAINT fk_emp_dept1
-> FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp6;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(25) | YES | | NULL | |
| deptId | int(11) | YES | MUL | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (1.33 sec)
以上語句執行成功之後,在表 tb_emp6 上添加了名稱為 fk_emp_dept1 的外鍵約束,外鍵名稱為 deptId,其依賴於表 tb_dept1 的主鍵 id。
注意:從表的外鍵關聯的必須是主表的主鍵,且主鍵和外鍵的數據類型必須一致。例如,兩者都是 INT 類型,或者都是 CHAR 類型。如果不滿足這樣的要求,在創建從表時,就會出現「ERROR 1005(HY000): Can't create table」錯誤。
在修改表時添加外鍵約束
外鍵約束也可以在修改表時添加,但是添加外鍵約束的前提是:從表中外鍵列中的數據必須與主表中主鍵列中的數據一致或者是沒有數據。
在修改數據表時添加外鍵約束的語法格式如下:
閱讀剩餘部分
相關閱讀 >>
mysql日期如何轉字元串
【mysql資料庫】第三章解讀:伺服器性能剖析(上)
mysql case when的用法是什麼
mysql關閉後自動重啟怎麼辦
mysql精講之二:dml數據操作語句
淺析mysql中concat以及group_concat的使用
mysql如何來創建表
mysql怎麼清空數據表數據
mysql安裝配置jdbc和基礎學習
mysql怎麼加入一個資料庫?
Ⅵ 在mysql中,表的欄位是本表的外鍵,這該如何設置
1. 打開我的navicat,然後找到我的teacher表,選中它,然後點擊菜單的『design table』。
2. 在彈出的對話框中找到「Foreign Keys」,然後單擊。
3. 然後會出現一個設置外鍵的界面,一共有七列。簡單介紹一下這幾列的意思。
『name』:可以不填,你一會保存成功系統會自動生成。
『FieldName』:就是你要把哪個鍵設置為外鍵。這里選擇『dept』
『Reference DadaBase』:外鍵關聯的資料庫。
『Reference Table『 :關聯的表 這里是dept表
『Forgin filed Names』:關聯的的欄位,這里是code
『ondelete』:就是刪除的時候選擇的動作。這里我的選擇是setNull,意思就是當關聯的表刪除以後,teacher》dept欄位會設置為null。
『onupdate』:就是更新的時候選擇的動作。這里我的選擇是CASCADE,意思就是當關聯的表更新以後,teacher》dept欄位會設置為級聯更新。
4. 設置完成後點擊『save』保存退出,也可以點擊『add Foreign Key』再添加一個外鍵。
MySQL是一個關系型資料庫管理系統,由瑞典 MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關系型資料庫管理系統,在 WEB 應用方面 MySQL 是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體之一。MySQL 是一種關聯資料庫管理系統,關聯資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。MySQL 所使用的 SQL 語言是用於訪問資料庫的最常用標准化語言。MySQL 軟體採用了雙授權政策(本詞條「授權政策」),它分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。由於其社區版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發環境。
Ⅶ mysql如何增加一個外鍵
這么多,誰有心情看清啊?
Ⅷ 求mysql建表時創建外鍵 與 修改某欄位為外鍵的 sql語句
CREATE TABLE `NewTable` (
`id` int(4) NOT NULL AUTO_INCREMENT ,
`name` varchar(32) NULL ,
PRIMARY KEY (`id`),
CONSTRAINT `uuii(外鍵名)` FOREIGN KEY (`id`, `name`) REFERENCES `demo1(被參考表)` (`id`) ON DELETE NO ACTION
)
;
創建表時加外建
Ⅸ 如何在sqlyog設置表的外鍵
1、首先雙擊SQLyogEnt的快捷方式以打開軟體;
Ⅹ MySql如何創建外鍵
mysql添加外鍵:
為已經添加好的數據表添加外鍵:
語法:alter table 表名 add constraint FK_ID foreign key(你的外鍵欄位名) REFERENCES 外表表名(對應的表的主鍵欄位名);
例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)
//FK_ID是外鍵的名稱
/*
CREATE TABLE `tb_active` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`content` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `user_id_2` (`user_id`),
CONSTRAINT `FK_ID` FOREIGN KEY (`user_id`) REFERENCES `tb_user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
*/