mysql中的错误1136

时间:2014-09-17 22:31:53

标签: mysql

我一直在mysql中收到错误1136,我需要帮助,这段代码有什么问题?

CREATE table Artist (
ArtistID INT,Salary varchar (20),Contract_End_Date date,Trackname varchar (20),
Artistname varchar (15),
Fname varchar (20), 
Lname varchar (20), 
Birthday date ,
PRIMARY KEY(ArtistID),
FOREIGN KEY (Salary) REFERENCES Contract(Salary),
FOREIGN KEY (Contract_End_Date) REFERENCES Contract(Contract_End_Date),
FOREIGN KEY (Trackname) REFERENCES Track(Trackname));


INSERT INTO Artist(ArtistID, Artistname, Fname, Lname, Birthday, Salary, Contract_End_Date, Trackname) VALUES (
'1','JM','John','Mcfierceson','1978-05-20','$100000','2017-05-08','Cries by the Ocean',
'2','Ray','Ray','Grueson','1990-07-10','$500000','2017-09-12','Jumping Jacks',
'3','Shiin','Charlie','Shiin','1989-02-12','$700000','2020-12-17','I can feel my head', 
'4','King','Bobby','Naval','1978-09-24','$7878787','2014-10-11','Rain',
'5','Yellowman','Chris, Yellow','1984-11-11','$8000000','2014-09-08','Falling',
'6','Sting','Karl','Shakur','1967-10-06','$5600000','2014-05-15','X',
'7','Kboy','Kendrick','Maine','1990-12-25','$8099999','2021-09-12','Trick');

CREATE table Contract (
Contractcode varchar (20), Artistname varchar(15),
Contract_start_Date date,
Contract_End_Date date,
Salary varchar(20),
PRIMARY KEY(Contractcode),
FOREIGN KEY (Artistname) REFERENCES Artist(Artistname));

INSERT INTO Contract VALUES (
'1004JM', 'JM', '2011-05-08', '2017-05-08', '$100000 ', 
'2424RG', 'Ray', '2013-09-12', '2017-09-12', '$500000', 
'3446SC', 'Shiin', '2010-12-17', '2020-12-17', '$700000',  
'9999BN', 'King', '1990-10-11', '2014-10-11', '$7878787', 
'2546CY', 'Yellowman', '2000-09-08', '2014-09-08', '$8000000', 
'4446KS', 'Sting', '1980-05-15', '2014-05-15', '$5600000', 
'5454KM', 'Kboy', '2010-09-12', '2021-09-12', '$8099999');

CREATE table Track (
Trackname varchar (20),
Artistname varchar (15),
Tracktype  varchar (20),
Tracklength int ,
PRIMARY KEY(Trackname),
FOREIGN KEY (Artistname) REFERENCES Artist(Artistname));

INSERT INTO Track VALUES (
'Cries by the Ocean', 'Jumping Jacks', 'I can feel my head', 'Rain', 'Falling', 'X', 'Trick', 
'JM', 'Ray', 'Shiin', 'King', 'Yellowman', 'Sting', 'Kboy',
'Rock', 'Rock', 'Indie', 'RnB', 'Rock', 'Rock', 'Rock',
'4', '5', '3', '3', '5', '5', '5');

2 个答案:

答案 0 :(得分:1)

Mysql Error 1136表示Column count doesn't match value count

您似乎使用单个insert语句插入多行。

每行数据都应在其自己的括号中。每组括号应以逗号分隔。像这样:

INSERT INTO artist
  (artistid, artistname, fname, lname, birthday, salary, contract_end_date, trackname)
VALUES
  ('1', 'JM', 'John', 'Mcfierceson', '1978-05-20', '$100000', '2017-05-08', 'Cries by the Ocean'),
  ('2', 'Ray', 'Ray', 'Grueson', '1990-07-10', '$500000', '2017-09-12', 'Jumping Jacks'),
  ('3', 'Shiin', 'Charlie', 'Shiin', '1989-02-12', '$700000', '2020-12-17', 'I can feel my head'),
  ('4', 'King', 'Bobby', 'Naval', '1978-09-24', '$7878787', '2014-10-11', 'Rain'),
  ('5', 'Yellowman', 'Chris, Yellow', '1984-11-11', '$8000000', '2014-09-08', 'Falling'),
  ('6', 'Sting', 'Karl', 'Shakur', '1967-10-06', '$5600000', '2014-05-15', 'X'),
  ('7', 'Kboy', 'Kendrick', 'Maine', '1990-12-25', '$8099999', '2021-09-12', 'Trick');

INSERT Syntax (Documentation)

答案 1 :(得分:0)

您正在尝试插入比您拥有的字段更多的数据。试试这个:

CREATE table Track ( Trackname varchar (20), 
                      Artistname varchar (15),
                      Tracktype varchar (20),
                      Tracklength int ,
                      PRIMARY KEY(Trackname), 
                      FOREIGN KEY (Artistname) 
                      REFERENCES Artist(Artistname));

INSERT INTO Track VALUES ( 'Cries by the Ocean', 'JM', 'Rock', '4'), 
                         ('Jumping Jacks', 'Ray', 'Rock', '5');

将每行包含在一组()中,每行包含一行数据。

相关问题