为啥默认约束在mysql中不起作用? [复制]
Posted
技术标签:
【中文标题】为啥默认约束在mysql中不起作用? [复制]【英文标题】:Why does the default constraint not work in mysql? [duplicate]为什么默认约束在mysql中不起作用? [复制] 【发布时间】:2021-02-13 17:29:58 【问题描述】:错误代码:1136。列计数与第 1 行的值计数不匹配
roll_no INT PRIMARY KEY NOT NULL unique,
name CHAR(15) NOT NULL,
class integer(3),
section CHAR(1),
sibling boolean default false);
insert into school
values(1,'ramesh',12,'D');
【问题讨论】:
通常在这些情况下,您会将主键指定为自增列。您仍然必须明确设置其他列名。PRIMARY KEY NOT NULL unique
PRIMARY KEY 或 UNIQUE,同时拥有它们并不能改善任何事情
【参考方案1】:
如果您没有为所有列提供值,则需要明确说明这些值所指的列:
insert into school(roll_no, name, class, section)
values(1, 'ramesh', 12, 'D');
【讨论】:
如果我必须输入行怎么办:(1,'ramesh',12,'D'),(2,'Sam',11,'C',True)【参考方案2】:您没有在插入中指定列名,因此 mysql 需要 all 列的数据。限定您的目标列名称,插入应该可以工作:
INSERT INTO school (roll_no, name, class, section)
VALUES
(1, 'ramesh', 12, 'D');
SQL 插入的最佳实践是始终列出插入的目标列。造成这种情况的一个原因是,如果您不这样做,如果 a) 列数发生变化,或 b) 表中列的顺序发生变化,则插入语句可能会中断。
【讨论】:
以上是关于为啥默认约束在mysql中不起作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥 HttpServletRequest.getRemoteAddr() 在 Java servlet 中不起作用? [复制]
为啥百分号 (%) 在 crontab 中不起作用? [复制]
为啥 iframe 高度 100% 在 XHTML 页面中不起作用? [复制]