使用CREATE TABLE ... LIKE创建表遇语法错误,请求技术帮助
解决
CREATE TABLE ... LIKE语法报错问题 兄弟,你碰到的是数据库语法兼容性的坑——CREATE TABLE ... LIKE这个写法并不是所有数据库都认的!比如你如果用的是SQL Server,它根本不支持这个语法,这就是为啥你会收到Incorrect syntax near the keyword 'LIKE'的错误,折腾引号、临时表这些都没用,得换对应数据库的正确写法才行。
下面分情况给你解决方案:
如果你用的是SQL Server(大概率是这个情况)
SQL Server里复制表结构有两种常用方法:
方法1:快速复制表结构(不含数据)
用SELECT INTO语句,既能复制结构,又不会带数据:
SELECT * INTO jobserve_reports FROM Jobserve WHERE 1 = 0;
WHERE 1=0是关键,它让查询返回空结果,所以只会创建表结构,不会复制任何数据。
方法2:完整复制表结构+索引/约束
如果需要把原表的索引、主键、约束这些也一起复制,直接用SQL Server Management Studio(SSMS)生成脚本最方便:
- 右键点原表
Jobserve→ 任务 → 生成脚本 - 在向导里选好要生成的对象(记得勾上索引、约束这些选项),然后生成创建
jobserve_reports的脚本,执行脚本就搞定了。
如果你用的是MySQL(原生支持LIKE语法)
那你原来的写法本身是对的,但可能是表名大小写或者拼写的问题。可以试试用反引号包裹表名(如果表名有特殊字符或者数据库区分大小写):
CREATE TABLE `jobserve_reports` LIKE `Jobserve`;
先确认Jobserve表确实存在,没有拼写错误,再执行这个语句试试。
最后排查小细节
- 先搞清楚自己用的是啥数据库,不同数据库的表复制语法差很多
- 确认你有创建新表的权限,权限不够也可能出奇怪的错误
内容的提问来源于stack exchange,提问作者Matt Warner
相关产品推荐
相关产品推荐

