2017-01-21 33 views
1

古い「予約」に基づいて新しい表「old_booking」を作成し、古い表から新しい表に「dateTo」行を挿入します。ORA-01400:NULLを挿入できません。

私はなぜこれがあるとどのように私はそれを修正することができますか?SQLPLUS CMDラインでエラーを取得

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

を保ちますかあなたはまた、「は除去することによって、NULL値を許可するようにold_bookingテーブルのテーブル定義を変更することができ

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

:あなたのINSERT文でnullでない列を追加する必要が最小として

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; 
+0

少なくともINSERT INTO oldBooking(hotelNo、guestNo、dateTo)のSELECT文でNOT NULL列を追加する必要があります。SELECT hotelNo、guestNo、dateTo FROM Booking。 – dadde

+0

また、hotelNoおよびguestNoで 'NOT NULL'ステートメントを削除することによって、NULL値を許可するようにold_bookingテーブルのテーブル定義を変更することもできます。 – dadde

+0

@ダイドありがとう! – Rgoat

答えて

1

hotelNoとguestNoには "NULL"ステートメントがあります。

関連する問題