简体   繁体   English

ORA-01400:无法插入NULL

[英]ORA-01400: cannot insert NULL

I am creating a new table "old_booking" based on an old one "booking" and inserting "dateTo" row into the new table from the old one. 我正在基于一个旧的“ booking”创建一个新表“ old_booking”,并将“ dateTo”行从旧表插入到新表中。

I keep getting the error in sqlplus cmd line 我在sqlplus cmd行中不断收到错误

ORA-01400: cannot insert NULL into ("SYSTEM", "OLDBOOKING", HOTELNO")

why is this and how can I fix it? 为什么会这样,我该如何解决?

CREATE TABLE Booking
(hotelNo        CHAR(8)         NOT NULL
,guestNo        CHAR (8)        NOT NULL
,dateFrom        DATE
,dateTo            DATE
,CONSTRAINT FkhotelNo2    FOREIGN KEY (hotelNo) REFERENCES Hotel(hotelNo)
,CONSTRAINT FkguestNo    FOREIGN KEY (guestNo) REFERENCES Guest (guestNo)
);

CREATE TABLE Old_Booking
(hotelNo        CHAR(8)         NOT NULL
,guestNo        CHAR (8)        NOT NULL
,dateFrom        DATE
,dateTo          DATE
);

INSERT INTO oldBooking(dateTo)
SELECT dateTo FROM Booking;

As a minimum you need to add the not null columns in your insert statement: 至少需要在insert语句中添加not null列:

INSERT INTO oldBooking(hotelNo, guestNo, dateTo) 
SELECT hotelNo, guestNo, dateTo FROM Booking;

You could also change the table definition for the old_booking table to allow null values by removing the 'NOT NULL' statements on hotelNo and guestNo. 您也可以通过删除hotelNo和guestNo上的“ NOT NULL”语句来更改old_booking表的表定义,以允许空值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM