簡體   English   中英

具有主鍵約束和唯一鍵約束的MySQL表

[英]Mysql table with both primary and unique key constraint

我有一個如下的mysql表,

CREATE TABLE IF NOT EXISTS `sometable` (
  `field1` varchar(36) NOT NULL,
  `field2` varchar(36) NOT NULL,
  `field3` varchar(36) NOT NULL,
  `field4` varchar(36) NOT NULL,
  PRIMARY KEY (`field1`, `field2`)
  UNIQUE KEY `field3` (`field3`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在什么情況下,該表中的記錄將被視為重復記錄? 假設,我的表中有以下記錄。

-------------------------------------
| field1 | field2 | field3 | field4 |
|------------------------------------
|   a    |   b    |    c   |    d   |
-------------------------------------

現在,如果我插入(field1,field2,field3,field4) values (a, b, cc, d) ,它將拋出重復的鍵錯誤嗎? 還是通過考慮唯一鍵約束,它是否允許插入條目並使表如下所示?

-------------------------------------
| field1 | field2 | field3 | field4 |
|------------------------------------
|   a    |   b    |    c   |    d   |
-------------------------------------
|   a    |   b    |   cc   |    d   |
-------------------------------------

如果違反任何一個唯一鍵約束(主鍵算作一個唯一鍵約束),它將經歷重復記錄錯誤。 因此,如果重復(field1, field2)(field3) ,您將得到一個錯誤。

因此,您的樣本數據將違反約束,並且插入第二行將產生錯誤,因為(field1, field2)是重復的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM