出现此原因是由于mysql版本过低,在同一条语句中不支持insert 和 select 同时操作同一张表。在mysql5.0版本之后解决了此问题,可以同时操作同一张表,但是依然不支持在子查询中同时操作同一张表。

在同一张表中进行select 和 insert 操作时,mysql会产生一张临时表,先查询出结果到临时表,然后再插入表本身。当insert 和 select 操作的是同一个临时表时,同样会报mysql-ERROR 1093 INSERT TABLE is not allowed in FROM table list 错误,因为在这种情况下,临时表不能被引用两次。

阅读全文

今天从excel导入数据到服务器的mysql,在本地把excel的内容拷贝到了Editplus,然后用正则把它变成了insert into 语句,在用mysql -uroot -p123456 databasename < filename.sql 导入的时候,被告知 ERROR 1062 (23000) at line 258: Duplicate entry (‘xx’,xx,xx,x,xxx) for key 2,违背了Unique Key,但是这种情况应该是正常的,重复键不插入,继续执行就好啦,可是它却报错并停止执行了。。

阅读全文

搞C#、.NET的,大都用的mssql数据库,但是在mysql里边,有一些mssql的用法是不适用的,以下是我今天刚经历的两个例子,共大家参考。

1、SELECT INTO TABLE

在mssql中, 有如下用法,可以直接把查询出的数据放到一个新表中,这条语句可以很好的用来备份表。

2、not in()

在mssql中, not in () 的括弧内可以直接放置sql语句,也可以很方便的实现特殊查询。

这条语句在mysql中就会报错。

阅读全文

mysql中没有现有的工具可以直接实现,所以原理就是使用现有的功能实现drop table 的语句的自动拼写,从而达到简化目的。

下边举例说明,如果想删除”wp_”开头的表:

这样就会出现drop table wp_xxxx 的所有语句,复制下来,简单修改一下,直接粘贴到命令行中运行就可以啦~~

阅读全文

作者的图片

DigDeeply

Technology Stack: Golang/PHP/Openresty, and so on…

Web Development Engineer

Beijing China