Почему я получаю ошибку 1241 при попытке создать и вставить данные в новую таблицу (на phpMyAdmin)? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь создать новую таблицу и вставить в нее значения, однако продолжаю получать «# 1241 - Операнд должен содержать 1 столбец (столбцы)». Кто-нибудь может помочь определить, что не так с моим кодом, поскольку я не уверен, на что ссылается эта ошибка?

Код, который я вставляю в базу данных phpMyAdmin на вкладке SQL. Я попытался удалить атрибуты автоинкремента и попытался просмотреть другие примеры, чтобы проверить мой синтаксис, но я не могу определить проблему. Некоторые рекомендации по этому вопросу будут приняты с благодарностью.

Введенный мною код начинается следующим образом:

# AppSoft Project - Greg Roberts

DROP table if exists Department;
DROP table if exists Role;
DROP table if exists User;
DROP table if exists Appraisal;
DROP table if exists Question;
DROP table if exists Answer;

CREATE table Department(
    DeptID int NOT NULL AUTO_INCREMENT,
    DeptName varchar(30) NOT NULL,
    primary key (DeptID));

INSERT into Department values(
    (00, 'SuperAdmin'),
    (01, 'Support Staff'),
    (02, 'Teaching Staff'),
    (03, 'SLT'));

CREATE table Role(
    RoleID int NOT NULL AUTO_INCREMENT,
    RoleTitle varchar(30) NOT NULL,
    primary key (RoleID));

INSERT into Role values(
    (00, 'SuperAdmin'),
    (01, 'Office Administrator'),
    (02, 'Teaching Partner'),
    (03, 'Mid Day Supervisor'),
    (04, 'Cooks'),
    (05, 'Cleaners'),
    (06, 'Maintenance'),
    (07, 'Teacher'),
    (08, 'Department Head'),
    (09, 'SENCO'),
    (10, 'Head Teacher'),
    (11, 'Executive Head'));

Код ошибки, который возникает

1 Ответ

1 голос
/ 20 февраля 2020

Вам не нужно вставлять первичные ключи, если они установлены в auto_increment.

DeptID int NOT NULL AUTO_INCREMENT

Просто введите название отдела, никаких дополнительных скобок для значений не требуется.

INSERT into Department( DeptName) values 
('SuperAdmin'),
('Support Staff'),
('Teaching Staff'),
('SLT');

Вы должны сделать то же самое для таблицы ролей.

Также, если вы попытаетесь вставить 0 в первичный ключ, он фактически вставит 1, о котором вы можете прочитать в Стандартных документах

, которые вам кажутся чтобы получить ошибку, потому что ваша первая запись вставляет 1 в таблицу, а затем вторая запись пытается снова вставить 1 в столбец первичного ключа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...