密钥主要的重复输入密钥

时间:2015-08-19 13:19:42

标签: mysql database

我的代码遇到了一些错误。它说

错误代码1062,SQL状态23000:重复条目' 88889'关键' PRIMARY' 第15行第1栏

错误代码1062,SQL状态23000:重复条目' 87990'关键' PRIMARY' 第20行第1栏

错误代码1062,SQL状态23000:重复条目' 79678'关键' PRIMARY' 第25行,第1栏

错误代码1062,SQL状态23000:重复条目' 88799'关键' PRIMARY' 第30行第1栏

错误代码1062,SQL状态23000:重复条目' 78998'关键' PRIMARY' 第35行,第1栏

这是我的代码:

CREATE TABLE IF NOT EXISTS studentrecord (
student_id VARCHAR(7),
stud_first_name VARCHAR(15) NOT NULL,
stud_last_name VARCHAR(15) NOT NULL,
stud_date_of_birth DATE NOT NULL,
stud_address VARCHAR(50) NOT NULL,
stud_program VARCHAR(20) NOT NULL,
stud_marital_status INT(2) NOT NULL,
stud_country VARCHAR(20) NOT NULL,
PRIMARY KEY (student_id)
) ENGINE=innodb;

-- insert a sample data
INSERT INTO studentrecord VALUES(
'88889','Albukori','Zaman Khan','1969-07-08',
'4-5, Dead Wood Street 5, 12000 Sintok, Kedah','MSc. IT',
'1','Malaysia');

INSERT INTO studentrecord VALUES(
'87990','Haslina','Mahathir','1970-11-12',
'345, New Smart Village, 17100 Nilai, N. Sembilan','MSc. ICT',
'2','Malaysia');

INSERT INTO studentrecord VALUES(
'79678','Mohammed','Fajr','1975-04-20',
'Pearl Apt, Level 10, Al-Hijr, 45200 Abu Dhabi','MSc. Expert System',
'2','UEA');

INSERT INTO studentrecord VALUES(
'88799','Mustar','Mohd Dali','1979-06-24',
'345, Side Village, Kerian, 12300 Jawa Barat','MSc. MultiMedia',
'1','Indonesia');

INSERT INTO studentrecord VALUES(
'78998','Satkorn','Chengmo','1968-01-26',
'34 Uptown Street #4, Tech Park, 78100 Bangkok','MSc. IT',
'2','Thailand');

感谢您的回复。我希望你能帮助我,我对这个很新。

1 个答案:

答案 0 :(得分:1)

该代码只能运行一次,系统尝试两次输入相同的记录,因此失败。这听起来像学生记录表有一个主键,这是你想要输入的第一个值,例如.78998

为了解决这个问题,你可以通过将代码更改为这样的代码来重新编写代码(请记住这是针对t-sql而不是mysql)

IF NOT EXISTS (SELECT * FROM studentrecord  WHERE id = 1878998)
INSERT INTO studentrecord VALUES( '78998','Satkorn','Chengmo','1968-01-26', '34 Uptown Street #4, Tech Park, 78100 Bangkok','MSc. IT', '2','Thailand');
编辑:正如Sasha Salauyou所说,你也可以先放下桌子