“数字”不是有效的MySQL数据类型吗?

时间:2013-11-06 16:57:26

标签: mysql ddl

create table S (SNO text, SNAME text, STATUS number, CITY text)
insert into S values('S1','Smith','20','London')
insert into S values('S2','Jones','10','Paris')
insert into S values('S3','Blake','30','Paris')
insert into S values('S4','Clark','20','London')
insert into S values('S5','Adams','30','Athens')

我很难弄清楚为什么这不是一个有效的SQL查询,我尝试使用谷歌搜索答案,但无济于事。

我试图用JDBC查询Sqlite数据库,我也尝试将其插入到phpMyAdmins查询字段中。 这是phpMyAdmin提供的错误消息,

#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 'number, CITY text) insert into S values('S1','Smith','20','London') insert int' at line 1

4 个答案:

答案 0 :(得分:2)

您要查找的类型可能是NUMERIC而不是NUMBER。此外,您需要在MySQL中的语句之间添加分号;

答案 1 :(得分:2)

CREATE TABLE `S` (`SNO` TEXT, `SNAME` TEXT, `STATUS` INT, `CITY` TEXT);

START TRANSACTION;

BEGIN;
INSERT INTO `S` VALUES ('S1', 'Smith', 20, 'London');
INSERT INTO `S` VALUES ('S2', 'Jones', 10, 'Paris');
INSERT INTO `S` VALUES ('S3', 'Blake', 30, 'Paris');
INSERT INTO `S` VALUES ('S4', 'Clark', 20, 'London');
INSERT INTO `S` VALUES ('S5', 'Adams', 30, 'Athens');
COMMIT;

试一试。

编辑:

  • number更改为INT
  • 添加分号(提及 Gabe
  • 在表格和列名称周围添加了反引号
  • 添加了交易(加快了INSERT次查询,可选)
  • 删除了数字周围的引号(提及 christiandev

答案 2 :(得分:1)

数字

周围不需要quotes
create table S (SNO text, SNAME text, STATUS number, CITY text)
insert into S values('S1','Smith',20,'London')

编辑:来自我的fiddle

CREATE TABLE s
    (
      SNO VARCHAR(35) ,
      SNAME VARCHAR(35) ,
      STATUS INT ,
      CITY VARCHAR(35)
    ) ;
INSERT  INTO s
VALUES  ( 'S1', 'Smith', 20, 'London' ) ;
INSERT  INTO s
VALUES  ( 'S2', 'Jones', 10, 'Paris' )

SELECT  *
FROM    s

另外,number应该是types之一吗?

答案 3 :(得分:0)

保留

STATUS

http://dev.mysql.com/doc/refman/5.1/de/show-table-status.html

使用

 create table S (SNO text, SNAME text, `STATUS` int, CITY text)

代替