1
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

4 回答 4

2

您正在寻找的类型可能是NUMERIC而不是NUMBER. 此外,您需要;在 MySQL 中的语句之间放置一个分号。

于 2013-11-06T16:58:52.010 回答
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提到的)
于 2013-11-06T17:05:03.590 回答
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吗?

于 2013-11-06T17:00:08.953 回答
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)

反而

于 2013-11-06T17:03:38.823 回答