在mysql连接中运行sql文件失败
在MySQL的连接中和Postgresql连接中运行SQL文件来创建表是有点差别的,今天做创建表的时候,在记事本上写了创建表和插入数据的sql语句,将.txt后缀名改成.sql在自己的Navicat Premium 12上运行出错,在同学的pdAdmin数据库软件上运行却没有报错。
如果遇到上面差不多的一般是sql语句的问题。
下面是我原来的sql代码
CREATE TABLE pifahelingshouye(
zhibiao varchar(50) NOT NULL ,
"2015" DECIMAL(10,1) DEFAULT NULL,
"2016" DECIMAL(10,1) DEFAULT NULL,
"2017" DECIMAL(10,1) DEFAULT NULL,
"2018" DECIMAL(10,1) DEFAULT NULL,
"2019" DECIMAL(10,1) DEFAULT NULL,
PRIMARY KEY (zhibiao)
);
insert into pifahelingshouye (zhibiao,"2015","2016","2017","2018","2019")
values
('法人企业 (个)', 183077, 193371, 200170,211515,242544),
('年末从业人额(万人)',1173.6 ,1193.6,1183.8,1184.5,1213.9),
('商品购进额(亿元)' , 468071.7 ,506309.4 ,572287.8, 616551.4 ,709505.3),
('W进口额(亿元)' , 33943.6 , 35355.7, 43743.8,45121.4, 51415.4 ),
('商品请售额(亿元)' , 515567.5 ,558877.6 ,630181.3, 691162.1, 782518.3),
('W出口额(亿元)' , 22719.5 , 21924.7 ,23617.1 , 26238.6, 27436.1),
('期末商品库存额(亿元)', 36591.7 , 38388.6 , 43397.0 , 42117.2 , 46410.0 );
我们老师给我们用PostgreSQL讲的,我们老师说**如果写的是英文就不用引号,最好字段名不要用中文,如果是数字就要用双引号。**然后在pdAdmin上测试了也确实是这样。
但是在mysql的连接中却不是这样的,**在 MySQL 中,用一对反引号"`"来标注SQL语句中的标识,如数据库名、表名、字段名等。**反引号是在英文状态下Tab键上面,1左边的那个按键。所以我改成下面的代码就行了(在下面的代码中字段名、表名可以是中文的,不过要加反引号)
CREATE TABLE `pifahelingshouye`(
`zhibiao` varchar(50) NOT NULL ,
`2015` DECIMAL(10,1) DEFAULT NULL,
`2016` DECIMAL(10,1) DEFAULT NULL,
`2017` DECIMAL(10,1) DEFAULT NULL,
`2018` DECIMAL(10,1) DEFAULT NULL,
`2019` DECIMAL(10,1) DEFAULT NULL,
PRIMARY KEY (`zhibiao`)
)
insert into `pifahelingshouye`
values
('法人企业 (个)', 183077, 193371, 200170,211515,242544),
('年末从业人额(万人)',1173.6 ,1193.6,1183.8,1184.5,1213.9),
('商品购进额(亿元)' , 468071.7 ,506309.4 ,572287.8, 616551.4 ,709505.3),
('W进口额(亿元)' , 33943.6 , 35355.7, 43743.8,45121.4, 51415.4 ),
('商品请售额(亿元)' , 515567.5 ,558877.6 ,630181.3, 691162.1, 782518.3),
('W出口额(亿元)' , 22719.5 , 21924.7 ,23617.1 , 26238.6, 27436.1),
('期末商品库存额(亿元)', 36591.7 , 38388.6 , 43397.0 , 42117.2 , 46410.0 );
因为我也是刚学,如果有讲的不对不好的地方,欢迎指出