אנא עזרתכם: שאלה ב-sql
מריצים את הסקריפט הבא בסקל סרבר
מתקבלת הודעת שגיאה על FK שמשוייך ל-PK המוגדר על שתי שדות.
מה בדיוק הבעיה?
איך ניתן לפתור אותה?
תודה
CREATE TABLE dealer
(
id nvarchar (9) PRIMARY KEY CHECK (id>000000000 AND id<999999999) DEFAULT 000000000,
name nvarchar (15) NOT NULL,
location nvarchar (10) NOT NULL,
seniority int CHECK (seniority>=0),
salary money CHECK (salary>20) DEFAULT 20,
phone nvarchar (11) NOT NULL,
dealaddress nvarchar (15) UNIQUE NOT NULL,
CONSTRAINT UC_dealer UNIQUE (name,phone)
)
CREATE TABLE product
(
procode nvarchar (10) DEFAULT 'XXXXXXXXXX' PRIMARY KEY,
proname nvarchar (10) NOT NULL DEFAULT 'Product',
price money CHECK (price>0),
madeyear int CHECK (madeyear>2010) DEFAULT 2013,
dealerid nvarchar (9) FOREIGN KEY
REFERENCES dealer(id),
--CONSTRAINT PK_product PRIMARY KEY (procode,proname)
)
CREATE TABLE customer
(
creditnum int PRIMARY KEY CHECK (creditnum>0000000000000000000 AND creditnum<9999999999999999999),
cusname nvarchar (15) NOT NULL,
procode nvarchar (10) DEFAULT 'XXXXXXXXXX',
custphone nvarchar (11) UNIQUE NOT NULL,
payment bit,
custaddress nvarchar (15) UNIQUE NOT NULL ,
CONSTRAINT FK_procust FOREIGN KEY (procode)
REFERENCES product(procode)
)
מריצים את הסקריפט הבא בסקל סרבר
מתקבלת הודעת שגיאה על FK שמשוייך ל-PK המוגדר על שתי שדות.
מה בדיוק הבעיה?
איך ניתן לפתור אותה?
תודה
CREATE TABLE dealer
(
id nvarchar (9) PRIMARY KEY CHECK (id>000000000 AND id<999999999) DEFAULT 000000000,
name nvarchar (15) NOT NULL,
location nvarchar (10) NOT NULL,
seniority int CHECK (seniority>=0),
salary money CHECK (salary>20) DEFAULT 20,
phone nvarchar (11) NOT NULL,
dealaddress nvarchar (15) UNIQUE NOT NULL,
CONSTRAINT UC_dealer UNIQUE (name,phone)
)
CREATE TABLE product
(
procode nvarchar (10) DEFAULT 'XXXXXXXXXX' PRIMARY KEY,
proname nvarchar (10) NOT NULL DEFAULT 'Product',
price money CHECK (price>0),
madeyear int CHECK (madeyear>2010) DEFAULT 2013,
dealerid nvarchar (9) FOREIGN KEY
REFERENCES dealer(id),
--CONSTRAINT PK_product PRIMARY KEY (procode,proname)
)
CREATE TABLE customer
(
creditnum int PRIMARY KEY CHECK (creditnum>0000000000000000000 AND creditnum<9999999999999999999),
cusname nvarchar (15) NOT NULL,
procode nvarchar (10) DEFAULT 'XXXXXXXXXX',
custphone nvarchar (11) UNIQUE NOT NULL,
payment bit,
custaddress nvarchar (15) UNIQUE NOT NULL ,
CONSTRAINT FK_procust FOREIGN KEY (procode)
REFERENCES product(procode)
)