Создать и вставить таблицу - PullRequest
0 голосов
/ 02 мая 2019

Я создал таблицу для базы данных и таблицу, но вейлы вставки не работают.

Это таблица

Create table patient (
Patient_ID Number(9) primary key,
First_name varchar2(15),
Last_name varchar2(10),
Contact number(10),
City varchar2(20),
Doctor_ID Number(9) references Doctor(Doctor_ID));

Это оператор вставки

insert into patient values ('21345', 'John', 'Smith', '111-111-1111', 'NJ');   
insert into patient values ('21346', 'Emily', 'Rose', '222-222-2222', 'LA');  
insert into patient values ('21347', 'Mark', 'Cruise', '333-333-3333', 'NY');
insert into patient values ('21348', 'Bran', 'Stark', '444-444-4444', 'TX');    
insert into patient values ('21349', 'Hailey', 'Wraith', '555-555-5555', 'AZ');

Я получаю сообщение об ошибке, говоря, что недостаточно значений.

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Вы вставляете 5 значений только тогда, когда ваша таблица ожидает 6 (ParentID, Имя, Фамилия, Контакт, Город и ID доктора)

Вам необходимо передать значение для Doctor_ID

0 голосов
/ 02 мая 2019

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

Insert into `patient` (`table1`, `table2`, `table3`, `table4`, `table5`) values ('21345', 'John', 'Smith', '111-111-1111', 'NJ');

Чтобы еще больше разбить вашу проблему, у вас есть 6 столбцов в таблице, но данные, которые вы передаете, равны 5, это даст вам эту ошибку, потому что 5 меньше 6. Если вы не хотите получать эту ошибку, вы необходимо указать каждый столбец, в который вы вводите, как показано выше - НО это поле должно быть пустым.

В этом случае Doctor_ID отсутствует

Insert into `patient` (`table1`, `table2`, `table3`, `table4`, `table5`, `table6` ) values ('21345', 'John', 'Smith', '111-111-1111', 'NJ', 'DOCTOR_ID_DATA_HERE');

ОТВЕТ:

Insert into `patient` (`Patient_ID`, `First_name`, `Last_name`, `Contact`, `City`, `Doctor_ID`) values ('2125', 'John', 'Doe', '111-111-1111', 'LA', '30114');

DOCTOR 30114 должен уже существовать, поскольку вы ссылаетесь из другой таблицы, обратите внимание!

...