Mysql 工作台-列计数不为';不匹配值计数?
我试图使用此语法代码将值插入表中,但它显示“列计数与第1行的值计数不匹配” 我还将表更改为非空:Mysql 工作台-列计数不为';不匹配值计数?,mysql,workbench,Mysql,Workbench,我试图使用此语法代码将值插入表中,但它显示“列计数与第1行的值计数不匹配” 我还将表更改为非空: ALTER TABLE locations MODIFY type INT NOT NULL; ALTER TABLE locations MODIFY description CHAR NOT NULL; ALTER TABLE locations MODIFY lng INT NOT NULL; ALTER TABLE locations MODIFY lat INT NOT NULL; ALT
ALTER TABLE locations MODIFY type INT NOT NULL;
ALTER TABLE locations MODIFY description CHAR NOT NULL;
ALTER TABLE locations MODIFY lng INT NOT NULL;
ALTER TABLE locations MODIFY lat INT NOT NULL;
ALTER TABLE users MODIFY userid INT NOT NULL;
ALTER TABLE users MODIFY name CHAR NOT NULL;
ALTER TABLE users MODIFY username CHAR NOT NULL;
ALTER TABLE users MODIFY password CHAR NOT NULL;
ALTER TABLE photograph MODIFY photoid INT NOT NULL;
ALTER TABLE photograph MODIFY locationid INT NOT NULL;
您的
用户ID
列似乎是一个自动递增主键,但我在工作台图像中没有看到选中的AI
属性
将AUTO_INCREMENT
属性添加到userid
ALTER TABLE users MODIFY userid INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
此外,在某些CHAR
列上没有字符长度或长度(1)
。它们需要比这更长,否则将被截断。我建议改用VARCHAR()
,使用适当的最大长度
-- For a 32 character username
ALTER TABLE users MODIFY username VARCHAR(32);
-- Allow a large size for passwords - hashing algorithms might make them long
ALTER TABLE users MODIFY password VARCHAR(128);
最后到列计数不匹配。。。这是因为您在INSERT
中的列列表中包含了userid
,但在VALUES()
列表中没有包含它的值。列列表有8列,但VALUES()
只有7个值。有两种解决方案
从列列表中省略userid
,以便MySQL使用递增值自动填充:
-- Leave `userid` out
INSERT INTO users (name, username,address,city,state,zip,password)
VALUES ('Bonnie Buntcake','bbunt','6709 Wonder Street','Wonderbread','OH','46105','eclectic');
或者将userid
保留在中,但在VALUES()
列表中提供一个NULL
。MySQL还将用自动递增值替换NULL
-- Add a NULL to `VALUES()` in the position of `userid`
INSERT INTO users (userid, name, username,address,city,state,zip,password)
VALUES (NULL, 'Bonnie Buntcake','bbunt','6709 Wonder Street','Wonderbread','OH','46105','eclectic');
您没有插入
userid
,并且忘记将userid
设置到自动增量(AI)列中
-- Add a NULL to `VALUES()` in the position of `userid`
INSERT INTO users (userid, name, username,address,city,state,zip,password)
VALUES (NULL, 'Bonnie Buntcake','bbunt','6709 Wonder Street','Wonderbread','OH','46105','eclectic');