Mysql 重复输入';1';对于键';初级';SQL
每次尝试运行此脚本时,我都会收到一个错误,即键“primary”的重复条目为“1”,我真的不知道如何修复它如果将列作为主键,则列中的每个值都必须是唯一的。添加第一个元组时,列POST_ID中已经有一个“1”的实例:Mysql 重复输入';1';对于键';初级';SQL,mysql,sql,Mysql,Sql,每次尝试运行此脚本时,我都会收到一个错误,即键“primary”的重复条目为“1”,我真的不知道如何修复它如果将列作为主键,则列中的每个值都必须是唯一的。添加第一个元组时,列POST_ID中已经有一个“1”的实例: CREATE TABLE Editor ( UsernameID VARCHAR (30), EditorName VARCHAR (30), EMail VARCHAR (30), DateOfBirth DATE, BlogTitle VARCHAR(30), PRIMARY K
CREATE TABLE Editor (
UsernameID VARCHAR (30),
EditorName VARCHAR (30),
EMail VARCHAR (30),
DateOfBirth DATE,
BlogTitle VARCHAR(30),
PRIMARY KEY (UsernameID));
INSERT INTO Editor VALUES
('Mdbuzzer','Joshua', 'coker@hotmail.com', '1995-03-15', 'Nearly Bound');
INSERT INTO Editor VALUES
('Kally32','Kally', 'kally@hotmail.com', '1993-10-13', 'Tomorrows War');
SELECT * FROM Editor;
CREATE TABLE Post
(UsernameID VARCHAR (30),
PostID INT,
BlogTitle VARCHAR (30),
PostTitle VARCHAR (30),
CategoryID INT,
TimeofPost VARCHAR (20),
PRIMARY KEY(PostID),
FOREIGN KEY (UsernameID) REFERENCES Editor (UsernameID));
INSERT INTO Post VALUES
('Kally32','1','Tomorrows War', 'Mystery', '4', '12:03pm');
INSERT INTO Post VALUES
('Kally32','1','Tomorrows War', 'Let It Shine','2','10:05pm');
INSERT INTO Post VALUES
('Kally32','1','Tomorrows War','Two Can Play That Game','2', '12:00pm');
INSERT INTO Post VALUES
( 'Mdbuzzer','2','Nearly Bound', 'Goal','3', '10:05pm');
INSERT INTO Post VALUES
( 'Mdbuzzer','2','Nearly Bound','Life After Death','4', '12:03pm');
INSERT INTO Post VALUES
('Mdbuzzer','2', 'Nearly Bound','Times Up','1', '14:06pm');
SELECT * FROM Post;
如果尝试在POST_ID列中添加另一个实例为“1”的元组,例如:
('Kally32','1','Tomorrows War', 'Mystery', '4', '12:03pm');
您将得到一个错误。问题是您正在主键为1的POST表中插入多行。如果您试图实现主键,它必须是唯一的 因此:
('Kally32','1','Tomorrows War', 'Let It Shine','2','10:05pm');
可以更改为以下内容:
INSERT INTO Post VALUES
('Kally32','1','Tomorrows War', 'Mystery', '4', '12:03pm');
INSERT INTO Post VALUES
('Kally32','1','Tomorrows War', 'Let It Shine','2','10:05pm');
INSERT INTO Post VALUES
('Kally32','1','Tomorrows War','Two Can Play That Game','2', '12:00pm');
INSERT INTO Post VALUES
( 'Mdbuzzer','2','Nearly Bound', 'Goal','3', '10:05pm');
INSERT INTO Post VALUES
( 'Mdbuzzer','2','Nearly Bound','Life After Death','4', '12:03pm');
INSERT INTO Post VALUES
('Mdbuzzer','2', 'Nearly Bound','Times Up','1', '14:06pm');
您已将
PostId
声明为POST
的主键
使用插入时,应始终包括列。因此,以下是表中的前两个插入:
INSERT INTO Post VALUES
('Kally32','1','Tomorrows War', 'Mystery', '4', '12:03pm');
INSERT INTO Post VALUES
('Kally32','2','Tomorrows War', 'Let It Shine','2','10:05pm');
INSERT INTO Post VALUES
('Kally32','3','Tomorrows War','Two Can Play That Game','2', '12:00pm');
在这两种情况下,您都将PostId
设置为相同的值1
。因此出现了错误
我希望代码看起来像:
INSERT INTO Post(UsernameID, PostID, BlogTitle, PostTitle, CategoryID, TimeofPost)
VALUES('Kally32','1','Tomorrows War', 'Let It Shine','2','10:05pm');
INSERT INTO Post(UsernameID, PostID, BlogTitle, PostTitle, CategoryID, TimeofPost)
VALUES('Kally32','1','Tomorrows War','Two Can Play That Game','2', '12:00pm');
对这是一种非常典型的方法。
CREATE TABLE Post (
UsernameID VARCHAR (30),
PostID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
BlogTitle VARCHAR (30),
PostTitle VARCHAR (30),
CategoryID INT,
TimeofPost VARCHAR (20),
FOREIGN KEY (UsernameID) REFERENCES Editor (UsernameID)
);
INSERT INTO Post(UsernameID, BlogTitle, PostTitle, CategoryID, TimeofPost)
VALUES('Kally32', 'Tomorrows War', 'Let It Shine', 2, '10:05pm');