Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thêm khóa ngoại vào bảng hiện có

ALTER câu lệnh cho nhiều FOREIGN KEYS không hoạt động.

Mỗi CONSTRAINT nên được thêm riêng lẻ:

CREATE TABLE Gust ( Gust_ID INT PRIMARY KEY, First_Name VARCHAR(50), Last_Name VARCHAR(50), Email VARCHAR(20), phone_number INT, Address VARCHAR(30) );
CREATE TABLE Reservation ( Reservation_ID INT PRIMARY KEY, Start_Date Date, End_Date Date );
CREATE TABLE RoomType ( RoomType_ID INT NOT NULL PRIMARY KEY, Class VARCHAR(10), ExtraPrice INT );

CREATE TABLE Room(Room_ID int PRIMARY KEY, Price INT, Reservation_ID int,Gust_ID int );

ALTER TABLE Room ADD FOREIGN KEY (Room_ID) REFERENCES RoomType(RoomType_ID);

ALTER TABLE Room ADD FOREIGN KEY (Reservation_ID) REFERENCES Reservation(Reservation_ID); 
-- the table Room is assumed to have a column Reservation_ID 

ALTER TABLE Room ADD FOREIGN KEY (Gust_ID) REFERENCES Gust(Gust_ID);
    -- the table Room is assumed to have a column Gust_ID

Nếu không muốn tên ràng buộc do Hệ thống tạo ra, thì hãy sử dụng các tên này;

ALTER TABLE Room ADD CONSTRAINT fk_RoomType_ID FOREIGN KEY (Room_ID) 
                                               REFERENCES RoomType(RoomType_ID);

ALTER TABLE Room ADD CONSTRAINT fk_Reservation_ID FOREIGN KEY (Reservation_ID) 
                                                REFERENCES Reservation(Reservation_ID); 

ALTER TABLE Room ADD CONSTRAINT fk_Gust_ID FOREIGN KEY (Gust_ID) 
                                           REFERENCES Gust(Gust_ID);

có thể được ưu tiên.

P.S. :

  • Không sử dụng NOT NULL với PRIMARY KEY , PRIMARY KEY đã bao gồm NOT NULL .
  • Không thể xác định độ dài cho INT cột.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với Oracle DB hỗ trợ SSL thông qua Java (JDBC)

  2. Thực thi truy vấn Sql động trong Oracle

  3. Câu lệnh chuẩn bị sẵn trong Python cx_Oracle với qmark

  4. Làm thế nào để các trường trong liên hợp mã này có tên khác nhau?

  5. Kích hoạt với câu lệnh Merge trong oracle