我正在基于旧表"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表的表定义以允许空值。