MySQL插入表记录遇到的ERROR 1054 (42S22)和ERROR 1217 (23000)
时间:2022-12-15 14:03 来源:linux.it.net.cn 作者:IT
1 ERROR 1054 (42S22): Unknown column '01' in 'field list'
create table class
(
classno char(12) not null,
classname char(20) not null,
primary key(classno)
);
insert into class values(`01`,`一班`),(`02`,`二班`),(`03`,`三班`);
ERROR 1054 (42S22): Unknown column '01' in 'field list'
查资料发现可能是列名前多了空格,我就想着删除重建,然后遇到第二个问题(见下文),解决后发现还是报错。在他人提醒下把`改为了'。
不明白什么时候加`,什么时候加‘。
有MYSQL保留字作为字段的,必须加上反引号来区分!!!所谓的保留字就是select database insert 这一类数据库的sql指令,当我们不得已要拿他们来做表名和字段名的时候 我们必须要加反引号来避免编译器把这部分认为是保留字而产生错误。
MySQL中的引号和反引号(``和 ‘‘)_铁甲小宝同学的博客-CSDN博客_mysql 引号
https://blog.csdn.net/m0_54355125/article/details/120855637
2 ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
这可能是MySQL在InnoDB中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。
SET FOREIGN_KEY_CHECKS = 0;
drop table class;
SET FOREIGN_KEY_CHECKS = 1;
(责任编辑:IT)
1 ERROR 1054 (42S22): Unknown column '01' in 'field list'
create table class
(
classno char(12) not null,
classname char(20) not null,
primary key(classno)
);
insert into class values(`01`,`一班`),(`02`,`二班`),(`03`,`三班`);
ERROR 1054 (42S22): Unknown column '01' in 'field list'
查资料发现可能是列名前多了空格,我就想着删除重建,然后遇到第二个问题(见下文),解决后发现还是报错。在他人提醒下把`改为了'。
不明白什么时候加`,什么时候加‘。
有MYSQL保留字作为字段的,必须加上反引号来区分!!!所谓的保留字就是select database insert 这一类数据库的sql指令,当我们不得已要拿他们来做表名和字段名的时候 我们必须要加反引号来避免编译器把这部分认为是保留字而产生错误。
MySQL中的引号和反引号(``和 ‘‘)_铁甲小宝同学的博客-CSDN博客_mysql 引号
https://blog.csdn.net/m0_54355125/article/details/120855637
2 ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
这可能是MySQL在InnoDB中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。
SET FOREIGN_KEY_CHECKS = 0;
drop table class;
SET FOREIGN_KEY_CHECKS = 1;
|