mysql问题结合

来源:互联网 发布:用r语言做数据分析选举 编辑:程序博客网 时间:2024/06/04 00:24

1.Can't create table 'XXX' (errno: 150)

    原因:

                       在MySQL里创建外键时(Alter table xxx add constraint fk_xxx foreign key),提示错误,产生这种错误的主要原因是两个关联表中关联字段的属性不一致,例如试图在A表与B表之间通过A.a字段关联,但是在B表中的a字段与A表中的a字段不同(类型不同,长度不同等)

    解决办法

              更改数据库使一致

2.You can't specify target table 'table_sync_record' for update in FROM clause

当执行以下语句时,出现了以上错误:

DELETE FROM table_sync_record WHERE ID NOT IN (SELECT MIN(ID) FROM table_sync_record GROUP BY file_name)

    上面语句的意思是:删除表中重复数据,保留重复数据最小的ID信息

    原因是mysql中不允许更新,作为数据来源的表

    解决办法

                将搜索结果存入中间表中,然后执行

CREATE TABLE tmp AS SELECT MIN(id) AS col1 FROM table_sync_record GROUP BY file_name;DELETE FROM table_sync_record WHERE id NOT IN (SELECT col1 FROM tmp);DROP TABLE tmp;


                           
原创粉丝点击