這是創建的表的代碼:
CREATE TABLE 責編負責與作者
(
EDIT_UID varchar(13) PRIMARY KEY,
AUTHOR_UID varchar(13) NOT NULL,
foreign key(EDIT_UID) references 編輯資訊表(EDIT_UID),
foreign key(AUTHOR_UID) references 作者資訊表(AUTHOR_UID),
);
這是插入陳述句:
INSERT INTO 責編負責與作者
VALUES('0001','0001'),
('0002','0002'),
('0003','0003'),
('0004','0004'),
('0005','0005'),
('0006','0006'),
('0007','0007'),
('0009','0008'),
('0009','0009'),
('0010','0010'),
('0011','0011'),
('0011','0012'),
('0013','0013'),
('0014','0014'),
('0015','0015'),
('0016','0016'),
('0017','0017'),
('0018','0018'),
('0019','0019'),
('0020','0020');
主鍵有重復的就會提示不能插入重復鍵。我感覺是我創建表的時候的陳述句有問題,但是我是個小白,不知道怎么改,求解答鴨!!
uj5u.com熱心網友回復:
首先主鍵是肯定不允許重復的,即使是外鍵做主鍵也是如此。既然你拿外鍵做主鍵,為什么不直接拿編輯資訊表來存這個表的資料呢。
uj5u.com熱心網友回復:
表里面,主鍵是唯一的……最好是重新學習(書或百度),外鍵的設定。
uj5u.com熱心網友回復:
可是我搜了一下說是外鍵做主鍵,主鍵是可以重復的,而且一個編輯管理多個作者那也只可能把作者UID作為外鍵引入編輯表里啊
uj5u.com熱心網友回復:
可是百度說是外鍵做主鍵,主鍵是可以重復的呀
uj5u.com熱心網友回復:
大兄弟你“看”或者“閱讀”得不夠仔細吧……
主鍵是表里面最重要、唯一的標示。所謂的“主鍵可以重復”,絕對是哪里看岔了~
如果說“主鍵里可以重復”,這個倒是可以:聯合主鍵。
比如主鍵是“班級+學號”,單獨看個“班級”,那就存在重復。但“班級+學號”絕對不可能重復。
uj5u.com熱心網友回復:
我感覺咱倆技術差不多,所以多說兩句。以子表來說,就是你的“責編負責與作者”
1、主鍵,ID,自增(不給其他任何含義)。
2、責編負責,給個欄位;作者,給個欄位。查詢或者修改時做一下連接好了。
——如果以后有哪里需要修改,你還得整這個鍵那個鍵的,容易出問題。直接看SQL陳述句就容易一些。
——反正我是做不出“一步到位”的系統,所以怎么簡單怎么來。
uj5u.com熱心網友回復:
SQL外鍵做主鍵為什么插入資料時還是不能插入重復資料?主鍵和UNIQUE不能重復,這個是肯定的,跟表的資料來源沒什么關系。 跟主鍵列參考了誰,也沒有關系。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/198906.html
標籤:基礎類
上一篇:SQLSERVER查詢速度
下一篇:SQL增刪改查基本語法整理
