2013-11-06 2 views
2
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-запрос, я попытался найти ответы на запросы, но безрезультатно.«Число» не является допустимым типом данных MySQL?

Я попытался запросить базу данных Sqlite с помощью JDBC, и я также попытался вставить его в поле запроса 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

+0

Имеющихся все типов данных описаны в руководстве: http://dev.mysql.com/doc/refman/5.5/en/data-types.html (в dI'm уверены, вам не нужен «текст» для этих столбцов). –

+0

Для многих инструкций 'INSERT' рекомендуется использовать' TRANSACTION ' – Houssni

+0

См. Http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html для числовых типов, доступных для использования. –

ответ

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
  • Добавленные запятой (Как Гейб упоминается)
  • Добавлены обратные кавычки вокруг имен таблиц и столбцов
  • Добавлено транзакций (Ускоряет INSERT запросы, необязательно)
  • Удаленные цитаты по номерам (как christiandev упоминается)
2

Тип искали может быть NUMERIC, а не NUMBER. Кроме того, вам нужно поставить точку с запятой ; между операторами в MySQL.

+0

Верно, но не то, что вызывает здесь синтаксическую ошибку. –

1

Вам не нужно quotes вокруг числа

create table S (SNO text, SNAME text, STATUS number, CITY text) 
insert into S values('S1','Smith',20,'London') 

EDIT: С моей 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?

Смежные вопросы