SQL Создать таблицу и данные - PullRequest
0 голосов
/ 17 сентября 2018

Я изучаю SQL и хотел создать простую таблицу:

Create table kante (v int, n int);
INSERT INTO kante VALUES (1,2), (2,3), (3,4), (2,3), (4,5);
SELECT * from kante;

Однако при использовании этих онлайн-редакторов я всегда получаю сообщения об ошибках.

Не могли бы вы помочь мне, где моя ошибка?Спасибо

Ответы [ 4 ]

0 голосов
/ 17 сентября 2018

Я думаю, что вставлять его одновременно - плохая идея, попробуйте это:

INSERT INTO kante(v,n) VALUES (1,2);
INSERT INTO kante(v,n) VALUES (2,3);....
0 голосов
/ 17 сентября 2018

Попробуйте по одному

Create table kante (v int, n int);
INSERT INTO kante (n,v) VALUES (1,2);
INSERT INTO kante (n,v) VALUES (2,6);
0 голосов
/ 17 сентября 2018

Проблема в том, что вы пытаетесь запустить 3 оператора вместе. Попробуйте выполнить каждое утверждение отдельно. т. е. для ясности сначала запустите оператор CREATE, затем оператор INSERT и, наконец, запрос SELECT.

0 голосов
/ 17 сентября 2018

Во-первых, всякий раз, когда используете insert, учитесь составлять список вставляемых столбцов.Таким образом, insert должно выглядеть следующим образом:

INSERT INTO kante(v, n)
    VALUES (1,2), (2,3), (3,4), (2,3), (4,5);

Это не повлияет на работу вашего кода;это просто хорошая идея.

На ум приходят две вещи.Если вы вызываете это из кода, то вы можете включить несколько операторов в вызов, который ожидает только один.Однако вы не упоминаете ни один такой язык.

Во-вторых, не все базы данных поддерживают вставку нескольких строк с VALUES.Например, ваш код определенно работает в MySQL (см. SQL Fiddle здесь ).Однако в Oracle это не сработает.

Таким образом, вы, вероятно, сможете решить свою проблему, используя несколько операторов INSERT:

INSERT INTO kante(v, n) VALUES (1, 2);
INSERT INTO kante(v, n) VALUES (2, 3);
INSERT INTO kante(v, n) VALUES (3, 4);
INSERT INTO kante(v, n) VALUES (2, 3);
INSERT INTO kante(v, n) VALUES (4, 5);
...