先说细节,因为公司接了个单子,项目要求是:将Oracle数据库换成mysql数据库。
前提:对方公司给了一个sql脚本
大家都知道,Oracle和MySQL在一些细节上是有区别的。所以我们直接运行脚本是不会成功的。于是我用单个创建表的代码段来测试,把原来Oracle的类型转换成MySQL的类型,然后选择代码块运行,结果出乎我的意料。
我看了报错信息,提示说是sql的第一行出现语法错误,但是我印象中好像感觉没啥问题(太久没用sql语句建表),以为是大小写的问题,于是我把表名和列名都改成小写。再次执行该代码块,还是报错,我还特意去百度了一下,发现有的博主也是这样写的。
为什么我也是这样,怎么就报错呢?
在我查找到的其中一篇文章中,该博主说,有可能是我们在使用单引号的时候,用的不是英文的单引号,而是英文的反单引号。大家可以访问该文章查看(侵权即删)mysql 创建表时出现和引号相关的问题_ajungejava的博客-CSDN博客CREATE TABLE 'product_category' ( 'category_id' INT NOT NULL auto_increment, 'category_name' VARCHAR (64) NOT NULL COMMENT '类目名称,' || 'category_type' INT NOT NULL COMMENT '类目编号', 'create_t...https://blog.csdn.net/qq_37992974/article/details/87992685
mysql 创建表出现异常,异常信息是:1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 'tableName' (....at line 1
CREATE TABLE 'ss' (
'GROUP_ID' int(11),
'TABLE_NAME' varchar(100),
'ROWS_QTY' int(11),
'INSERT_DATE' varchar(100),
'REMARK' varchar(200)
)
之所以出现这种问题,是因为多了单引号,把单引号删掉,选中代码重新运行即正常
DROP TABLE IF EXISTS ALL_GROUP_QTY;
CREATE TABLE ALL_GROUP_QTY (
GROUP_ID int(11),
TABLE_NAME varchar(100),
ROWS_QTY int(11),
INSERT_DATE varchar(100),
REMARK varchar(200)
)
end!
欢迎评论进行探讨!