ORA-01400:无法插入空



我正在基于旧表"booking"创建一个新表"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;

至少需要在插入语句中添加非空列:

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

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

相关内容

  • 没有找到相关文章

最新更新