成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL定義外鍵的方法

數據庫 MySQL
MySQL定義外鍵的方法是每個學習MySQL的人都需要掌握的知識,下文就對MySQL定義外鍵的語句寫法進行了詳細的闡述,供您參考。

外鍵為MySQL帶來了諸多的好處,下面就為您介紹MySQL定義外鍵的語句寫法,以及MySQL定義外鍵過程中出現錯誤的處理方法,供您參考學習。

  1. mysql> CREATE TABLE categories (  
  2.       -> category_id tinyint(3) unsigned NOT NULL AUTO_INCREMENT,  
  3.       -> name varchar(30) NOT NULL,  
  4.       -> PRIMARY KEY(category_id)  
  5.       -> ) ENGINE=INNODB;  
  6. Query OK, 0 rows affected (0.36 sec)  
  7.  
  8. mysql> INSERT INTO categories VALUES (1, ‘SQL Server’), (2, ‘Oracle’), (3, ‘PostgreSQL’), (4, ‘MySQL’), (5, ‘SQLite’);  
  9. Query OK, 5 rows affected (0.48 sec)  
  10. Records: 5    Duplicates: 0    Warnings: 0  
  11.  
  12. mysql> CREATE TABLE members (  
  13.       -> member_id INT(11) UNSIGNED NOT NULL,  
  14.       -> name VARCHAR(20) NOT NULL,  
  15.       -> PRIMARY KEY(member_id)  
  16.       -> ) ENGINE=INNODB;  
  17. Query OK, 0 rows affected (0.55 sec)  
  18.  
  19. mysql> INSERT INTO members VALUES (1, ‘test’), (2, ‘admin’);  
  20. Query OK, 2 rows affected (0.44 sec)  
  21. Records: 2    Duplicates: 0    Warnings: 0  
  22.  
  23. mysql> CREATE TABLE articles (  
  24.       -> article_id INT(11) unsigned NOT NULL AUTO_INCREMENT,  
  25.       -> title varchar(255) NOT NULL,  
  26.       -> category_id tinyint(3) unsigned NOT NULL,  
  27.       -> member_id int(11) unsigned NOT NULL,  
  28.       -> INDEX (category_id),  
  29.       -> FOREIGN KEY (category_id) REFERENCES categories (category_id),  
  30.       -> CONSTRAINT fk_member FOREIGN KEY (member_id) REFERENCES members (member_id),  
  31.       -> PRIMARY KEY(article_id)  
  32.       -> ) ENGINE=INNODB;  
  33. Query OK, 0 rows affected (0.63 sec)  

注意:對于非InnoDB表,FOREIGN KEY子句會被忽略掉。#p#
如果遇到如下錯誤:

  1. ERROR 1005: Can’t create table ‘./test/articles.frm’ (errno: 150) 

請仔細檢查以下定義語句,常見的錯誤一般都是表類型不是INNODB、相關聯的字段寫錯了、缺少索引等等。

至此categories.category_id和articles.category_id、members.member_id和 articles.member_id已經建立外鍵關系,只有 articles.category_id 的值存在與 categories.category_id 表中并且articles.member_id的值存在與members.member_id表中才會允許被插入或修改。例如:

  1. mysql> INSERT INTO articles (category_id, member_id, title) VALUES (6, 1, ‘foo’);  
  2. ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`test/articles`, CONSTRAINT `articles_ibfk_1` FOREIGN KEY (`category_id`)REFERENCES `categories` (`id`))  
  3.  
  4. mysql> INSERT INTO articles (category_id, member_id, title) VALUES (3, 3, ‘foo’);  
  5. ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`test/articles`, CONSTRAINT `fk_member` FOREIGN KEY (`member_id`) REFERENCES `members` (`member_id`))  
  6.  

可見上面兩條語句都會出現錯誤,因為在categories表中并沒有category_id=6、members表中也沒有member_id=3的記錄,所以不能插入。而下面這條SQL語句就可以。

  1. mysql> INSERT INTO articles (category_id, member_id, title) VALUES (3, 2, ‘bar’);  
  2. Query OK, 1 row affected (0.03 sec) 

以上就是MySQL定義外鍵的方法介紹。

 

 

 

 

【編輯推薦】

帶參數的MySql存儲過程

取得MySQL表信息的語句

mysql UPDATE語句的使用方法

MySQL單表多關鍵字模糊查詢的實現

常見MySql字段的默認長度

責任編輯:段燃 來源: 互聯網
相關推薦

2010-11-22 09:43:07

MySQL定義外鍵

2011-05-12 14:33:37

MySQL外鍵

2010-10-19 17:28:08

SQL SERVER外

2010-10-09 10:21:19

MySQL刪除外鍵

2010-10-09 09:55:41

MySQL外鍵

2010-11-22 10:08:03

Mysql外鍵用法

2010-05-17 16:10:39

MySQL數據庫

2010-11-22 09:59:32

MySQL外鍵設置

2010-05-11 18:46:46

MYSQL 外鍵

2010-09-03 11:52:41

SQL刪除

2010-06-17 17:50:31

SQL Server外

2010-10-09 09:46:28

MySQL外鍵

2010-11-12 15:19:06

Sql Server外

2019-11-05 08:20:13

MySQL數據庫外鍵

2010-10-09 10:29:29

MySQL外鍵

2022-06-26 06:32:28

MySQL數據庫維護

2010-05-11 19:11:13

MySQL外鍵

2011-09-01 10:56:34

2010-01-05 09:24:42

MySQL外鍵約束

2023-05-31 08:24:20

SQLAlchemyPython
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色久五月 | 热99视频 | 精品三区| 成人在线视频观看 | 91av视频在线| 日韩成人精品 | 中文字幕在线人 | 99视频在线播放 | 国内久久精品 | 日日干夜夜操 | 黄网站色大毛片 | 国产精品亚洲欧美日韩一区在线 | 国产精品免费大片 | 在线不卡视频 | 天堂网中文字幕在线观看 | 日韩一区二区三区视频 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 国产日韩一区二区三区 | 亚洲三级在线观看 | 国产成人黄色 | 一级片免费视频 | 国产精品久久久久久久久久久久久 | 亚洲免费一区二区 | 欧美一区二区三区视频在线 | 一区二区三区在线 | 中文字幕高清av | 久久久资源| 欧美亚洲视频在线观看 | 国产在线一区二区三区 | 一区免费看| 久久久久亚洲精品中文字幕 | 亚洲天堂网站 | 日韩网站免费观看 | 久久久久久久综合色一本 | 天天人人精品 | 懂色tv| 福利网站导航 | 欧美成人精品一区二区三区 | 韩日精品视频 | 夜夜摸夜夜操 | 日韩三区|