Create Table Customer
(
Cus_id Varchar2(10) NOT NULL Primary Key,
Cus_FirstName Varchar2(20) NOT NULL,
Cus_LastName Varchar2 (20) NOT NULL,
Cus_Address Varchar2(25) NOT NULL,
Cus_City_State_Zip Varchar2(30) NOT NULL
);
Create Table Order_
(
Order_id Varchar2(10) NOT NULL Primary Key,
Order_Date Varchar2(12) NOT NULL,
Order_Status Varchar(12) NOT NULL
);
Create Table Item
(
Item_id Varchar2(10) NOT NULL Primary Key,
Item_Name Varchar2(20) NOT NULL,
Item_Price Varchar2(10) NOT NULL
);
Create Table CustomerOrderItem
(
Quantity Varchar2(8) NOT NULL,
Cus_id Varchar(10) NOT NULL Primary Key,
Order_id Varchar(10) NOT NULL Primary Key,
Item_id Varchar(10) NOT NULL Primary Key,
Foreign Key(Cus_id) References Customer(Cus_id),
Foreign Key(Oreder_id) References Order_(Order_id),
Foreign Key(Item_id) References Item(Item_id)
);
此代码是一个包含重复订单和一个订单有多个项目的客户表。当我尝试将值插入表并创建它们时。由于它们的依赖性,我创建了第四个表,并在其中放置了三个主键作为主键和外键。它不允许我创建表,因为主键在另一个表中用作外键,因此我需要先删除它们才能创建表。
答案 0 :(得分:2)
您的数据架构既不匹配您所描述的内容,也不符合SQL Server的正确语法。撇开不良的设计,这就是您要尝试做的事情:
Create Table Customer ( Cus_id Varchar(10) NOT NULL Primary Key,
Cus_FirstName Varchar(20) NOT NULL,
Cus_LastName Varchar (20) NOT NULL,
Cus_Address Varchar(25) NOT NULL,
Cus_City_State_Zip Varchar(30) NOT NULL );
Create Table Order_ ( Order_id Varchar(10) NOT NULL Primary Key,
Order_Date Varchar(12) NOT NULL,
Order_Status Varchar(12) NOT NULL );
Create Table Item ( Item_id Varchar(10) NOT NULL Primary Key,
Item_Name Varchar(20) NOT NULL,
Item_Price Varchar(10) NOT NULL );
Create Table CustomerOrderItem ( Quantity Varchar(8) NOT NULL,
Cus_id Varchar(10) NOT NULL,
Order_id Varchar(10) NOT NULL,
Item_id Varchar(10) NOT NULL,
constraint PK_CustomerOrderItem primary key (cus_id, order_id, item_id),
constraint FK_COI_Customer Foreign Key(Cus_id) References Customer(Cus_id),
constraint FK_COI_Order Foreign Key(Order_id) References Order_(Order_id),
constraint FK_COI_Item Foreign Key(Item_id) References Item(Item_id) );
检查Northwind示例数据库以获得更好的示例,甚至更好的情况下,将AdventureWorks示例数据库作为入门者。
答案 1 :(得分:0)
您收到ORA-02449的错误消息是由于试图删除一个已被作为CustomerOrderItem表中的主键引用的表而解决的,要解决此问题,请先删除CustomerOrderItem表,然后再删除其他表。 祝你好运。