ORA-01400:无法插入NULL

时间:2017-01-21 01:40:19

标签: sql sqlplus ora-01400

我正在基于旧的“预订”创建一个新表“old_booking”,并将旧日期表中的“dateTo”行插入到新表中。

我一直在sqlplus cmd行中收到错误

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

为什么会这样,我该如何解决?

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;

1 个答案:

答案 0 :(得分:2)

至少需要在insert语句中添加not null列:

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

您还可以通过删除hotelNo和guestNo上的“NOT NULL”语句来更改old_booking表的表定义以允许空值。