Ошибка в инструкции INSERT: «ЗНАЧЕНИЕ недопустимо в этой позиции»

#mysql #sql #sql-insert

#mysql #sql #sql-вставка

Вопрос:

ЗНАЧЕНИЕ недопустимо в этой позиции

Ошибка включена VALUES в INSERT инструкции. В нем указано, что оно не поддерживается в этой версии. Означает ли это, что мне требуется обновление или мой синтаксис неправильный?

 create schema Cleudo;
USE CLEUDO;

create table Victim(
   Vic_ID INT NOT NULL AUTO_INCREMENT,
   Vic_Title VARCHAR(10) NOT NULL,
   Vic_Name VARCHAR(30) NOT NULL,
   Vic_Room VARCHAR(30) NULL,
   Vic_TOD VARCHAR(5) NULL,
   Vic_Weapon VARCHAR(30) NULL,
   PRIMARY KEY ( VIC_ID )
);

INSERT INTO Victim VALUES ('Miss','Scarlet','Library','10:45','candle-Stick');
  

Ответ №1:

Когда я запускаю ваш код, я получаю следующую ошибку:

Количество столбцов не соответствует количеству значений в строке 1

Это происходит потому, что вы не присваиваете значение таблице Vic_ID (что имеет смысл, поскольку оно автоматически увеличивается). Чтобы избежать ошибки, вам нужно перечислить целевые столбцы следующим образом:

 INSERT INTO Victim (Vic_Title, Vic_Name, Vic_Room, Vic_TOD, Vic_Weapon)
VALUES ('Miss','Scarlet','Library','10:45','candle-Stick');
  

Демонстрация на скрипке DB

Ответ №2:

Вы получаете эту ошибку, потому что количество столбцов не совпадает, поэтому вам нужно изменить свой запрос на это:

 INSERT INTO Victim(Vic_Title,Vic_Name,Vic_Room,Vic_TOD,Vic_Weapon) VALUES ('Miss','Scarlet','Library','10:45','candle-Stick');
  

Если вы хотите указать значение Vic_ID, вы можете попробовать этот запрос ниже:

 INSERT INTO Victim VALUES (NULL,'Miss','Scarlet','Library','10:45','candle-Stick')