Что будет, если у 3 таблиц один и тот же Primery Key?
это пардон как это?
приведи пример (create table...)
а в чем проблема-то?
так пример можно?
Буба, пиши поконкретней, create table приведи...
Вишь - тебя вапще никто не понял...
какой пример?..
Который показывает, что понимается под "три таблицы и один и тот же Primary key"
Например,
CREATE TABLE Lalala
LalalaID (.....)
...........
.............
...
CONSTRAINT PRIMARY KEY ( LalalaID)
...
CREATE TABLE Nanana
LalalaID
CONSTRAINT PRIMARY KEY (LalalaID)
Саму таблицу непосредственно запостить не могу.
По-моему ты ничего не прояснил.
форейн ки есть, ну и что, что одинаково обозвал, (и не я) смысл какой в этом?
CREATE TABLE Cdna (
cdnaID VARCHAR2(30
estSetID VARCHAR2(30) NOT NULL,
codonStart NUMBER NOT NULL,
translation VARCHAR2(3000) NOT NULL,
creationDate Date NOT NULL,
blastDone CHAR(1) NOT NULL,
utrDone CHAR(1) NOT NULL,
CONSTRAINT CdnaPk PRIMARY KEY (cdnaID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaFk FOREIGN KEY (estSetID)
REFERENCES EstSet (estSetID)
);
CREATE TABLE CdnaNucleotide (
CdnaNucleotideID NUMBER,
position NUMBER NOT NULL,
nucleotide CHAR(1) NOT NULL,
score NUMBER(4) NOT NULL,
cdnaID VARCHAR2(30) NOT NULL,
CONSTRAINT CdnaNuclPk PRIMARY KEY (CdnaNucleotideID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaNuclFk FOREIGN KEY (cdnaID)
REFERENCES Cdna (cdnaID
CONSTRAINT CdnaPositionID UNIQUE (position, cdnaID)
);
CREATE TABLE NucleotideAnnotation (
nucleotideAnnotationID NUMBER,
position NUMBER NOT NULL,
base CHAR(1) NOT NULL,
newBase CHAR(1) NOT NULL,
typeOfChange VARCHAR2(30) NOT NULL,
sequenceID VARCHAR2(30) NOT NULL,
CONSTRAINT NucleotideAnnotationPk PRIMARY KEY
(NucleotideAnnotationID)
USING INDEX TABLESPACE indx,
CONSTRAINT NucleotideAnnotation UNIQUE (position,
typeOfChange, sequenceID)
);
CREATE TABLE Annotation (
cdnaID VARCHAR2(30
sprotid VARCHAR2(10) NOT NULL,
identity number,
coverage number,
CONSTRAINT AnnotationPk PRIMARY KEY (cdnaID)
USING INDEX TABLESPACE indx
);
CREATE TABLE CdnaBlastMatchSet(
blastMatchSetID VARCHAR2(35
cdnaID VARCHAR2(30) NOT NULL,
blastDatabaseID VARCHAR2(2) NOT NULL,
creationDate DATE NOT NULL,
CONSTRAINT CdnaBlastMatchSetPk PRIMARY KEY
(blastMatchSetID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaBlastMatchEstFk FOREIGN KEY(cdnaID)
REFERENCES Cdna (cdnaID)
);
CREATE TABLE CdnaBlastMatch(
CdnablastMatchID NUMBER,
blastMatchSetID VARCHAR2(35) NOT NULL,
hitPosition NUMBER(5) NOT NULL,
description VARCHAR2(500
score NUMBER,
CONSTRAINT CdnaBlastMatchPk PRIMARY KEY
(CdnablastMatchID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaBlastMatchSetFk FOREIGN KEY
(blastMatchSetID)
REFERENCES CdnaBlastMatchSet (blastMatchSetID
STORAGE (INITIAL 512M
NEXT 512M
MINEXTENTS 1
MAXEXTENTS UNLIMITED);
CREATE TABLE EnsemblMatch(
cdnaID VARCHAR2(30
ensemblID VARCHAR2(30) NOT NULL,
identity number NOT NULL,
coverage number NOT NULL,
length number NOT NULL,
CONSTRAINT EnsemblMatchPk PRIMARY KEY (cdnaID)
USING INDEX TABLESPACE indx,
CONSTRAINT EnsemblMatchFk FOREIGN KEY (cdnaID)
REFERENCES Cdna (cdnaID)
);
CREATE TABLE GOPfamMap(
PfamID VARCHAR2(10) NOT NULL,
GOID VARCHAR2(10) NOT NULL,
PfamDesc VARCHAR2(50) NOT NULL,
GODesc VARCHAR2(200) NOT NULL
);
CREATE TABLE CdnaRPSBlastMatchSet(
blastMatchSetID VARCHAR2(35
cdnaID VARCHAR2(30) NOT NULL,
blastDatabaseID VARCHAR2(2) NOT NULL,
creationDate DATE NOT NULL,
CONSTRAINT CdnaRPSBlastMatchSetPk PRIMARY KEY
(blastMatchSetID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaRPSBlastMatchEstFk FOREIGN KEY(cdnaID)
REFERENCES Cdna (cdnaID)
);
CREATE TABLE CdnaRPSBlastMatch(
CdnaRPSBlastMatchID NUMBER,
blastMatchSetID VARCHAR2(35) NOT NULL,
hitID VARCHAR2(20) NOT NULL,
hitPosition NUMBER(5) NOT NULL,
description VARCHAR2(500
score NUMBER,
CONSTRAINT CdnaRPSBlastMatchPk PRIMARY KEY
(CdnaRPSBlastMatchID)
USING INDEX TABLESPACE indx,
CONSTRAINT CdnaRPSBlastMatchSetFk FOREIGN KEY
(blastMatchSetID)
REFERENCES CdnaRPSBlastMatchSet (blastMatchSetID
STORAGE (INITIAL 512M
NEXT 512M
MINEXTENTS 1
MAXEXTENTS UNLIMITED);
Извиняюсь, что не сохранились отступы
При этом каждое ограничени constraint для вторичного ключа (foreign key) явно указывает к какой таблице он будет обращаться за этим полем cdnaID. Так что это разные первичные ключи, хоть и название одинаковое
Вопрос был: "Что будет, если у 3 таблиц один и тот же Primery Key?"
Ответ: это три разных Primary key-я для трех разных таблиц, то что поля, на которых построен Primary key, имеют одиннаковые имена - ни на что не влиет.
Ок, понял
Оставить комментарий
jester
А у одной из них он еще и Foreign