Я борюсь с очень простым кодом MySQL, поэтому я явно неправильно понимаю кое-что очень фундаментальное. Этот очень простой код - хороший пример:

CREATE TEMPORARY TABLE temp_table (count int);
INSERT INTO temp_table VALUES((1),(2),(3));
SELECT * FROM temp_table;

Это возвращает:

11 errors were found during analysis.

A comma or a closing bracket was expected (near "1" at position 31)
Unexpected token. (near ")" at position 32)
Unexpected token. (near "," at position 33)
Unexpected token. (near "(" at position 34)
Unexpected token. (near "2" at position 35)
Unexpected token. (near ")" at position 36)
Unexpected token. (near "," at position 37)
Unexpected token. (near "(" at position 38)
Unexpected token. (near "3" at position 39)
Unexpected token. (near ")" at position 40)
Unexpected token. (near ")" at position 41)

Это прекрасно работает, если я использую только INSERT INTO temp_table VALUES(1);. Но, похоже, мне не нравится использовать круглые скобки, поэтому я не могу вставить несколько значений.

Если я сделаю INSERT INTO temp_table VALUES(1,2,3);, он вернет #1136 - Column count doesn't match value count at row 1

И я снова и снова сталкиваюсь с подобными проблемами с различными примерами кода MySQL, которые я нахожу в различных источниках, включая StackOverflow. Так что я не уверен, что мне не хватает.

В панели управления хостами я вижу, что я запускаю MariaDB 5.3, а в phpMyAdmin (4.5.2) я вижу, что я запускаю MySQL 5.7.9.

И все же я сталкиваюсь с проблемами при запуске кода, который поступает непосредственно с веб-сайта MariaDB.

Не могли бы вы (мягко) рассказать мне? Я уверен, что это должно быть базовым, и я готов учиться. Я просто не знаю, в чем проблема, и пока я не выучу эти основы, я просто буду крутить колеса.

2
Tim 6 Май 2016 в 22:16

2 ответа

Лучший ответ

Удалить упаковку ()

CREATE TEMPORARY TABLE temp_table (count int);
INSERT INTO temp_table VALUES(1),(2),(3);
SELECT * FROM temp_table;
3
scaisEdge 6 Май 2016 в 19:19

Примечания к @scaisEdge: когда вы пишете запрос вставки с несколькими значениями, вы не можете сгруппировать все значения вместе.

 //Wrong
 INSERT INTO temp_table values ((val1),(val2),(val3));

Вместо этого вам следует сделать следующее:

//Right
INSERT INTO temp_table values (val1), (val2), (val3);

Следовательно, ваш запрос должен быть:

INSERT INTO temp_table VALUES(1),(2),(3);

Надеюсь, это объясняет, наслаждайтесь!

1
MSameer 6 Май 2016 в 19:27