我的MySQL程序出现错误,即使我的朋友在自动生成错误后仍未收到错误
create database person;
CREATE TABLE person.`persons` (
ID INT NOT NULL AUTO_INCREMENT,
FNAME VARCHAR(45) NOT NULL,
LNAME VARCHAR(45) NOT NULL,
PHONE INT NOT NULL,
PRIMARY KEY (ID),
UNIQUE INDEX ID_UNIQUE (ID ASC));
我得到一个错误,即使我已经指定了FIELD ID,它也没有默认值,怎么回事? 每当我尝试粘贴一些值时,我都将其写为AUTO_INCREMENT和NOT_NULL
当我尝试将一些值插入表中时,就会发生错误:
INSERT INTO `Person`.`PERSON` (`FNAME`, `LNAME`, `PHONE`) VALUES ('Kristoffer', 'Tølbøll', '6969');
INSERT INTO `Person`.`PERSON` (`FNAME`, `LNAME`, `PHONE`) VALUES ('Nioklai', 'Stein Bagger', '1234');
INSERT INTO `Person`.`PERSON` (`FNAME`, `LNAME`, `PHONE`) VALUES ('Sebastian', 'Ananasfar', '5475');
答案 0 :(得分:1)
那是一个错字。你写了
CREATE TABLE person.`persons` /* notice the s at the table name */
然后,在查询中
INSERT INTO `Person`.`PERSON` /* notice the missing s */
如果您不想指定字段,则可以用这种方式编写插入查询(顺便说一句,您可以删除int类型字段的数值周围的引号,以避免从MySQL进行不必要的隐式转换):
INSERT INTO `person`.`persons` VALUES (default, 'Kristoffer', 'Tølbøll', 6969);