如何解决是否可以在 oracle 表中使多个列组合起来唯一?
这个问题可能不太好理解。
我创建了两个表 - 电影(FILMAS)和电影院(ZALES)。它们之间的关系是 M:M,因此创建了会话表(SEANSI)来链接它们。
是否可以确保在同一日期和时间在一个电影院内不能有两个不同的会议?怎么样?
Oracle 18c XE 数据库
from sklearn.tree import DecisionTreeRegressor
dtree = DecisionTreeRegressor(max_depth=5,min_samples_leaf =4,random_state=7)
dtree.fit(X_train,y_train)
y_preds = dtree.predict(X_test)
calculate_metrics(y_test,y_preds)
y = pd.DataFrame(y_test)
X = pd.DataFrame(y_preds)
dfy = y.assign(label = 'y')
dfX = X.assign(label = 'X')
# assign column names that match
dfy.columns=['days','label']
dfX.columns=['days','label']
result = pd.concat([dfy,dfX],axis=0)
result
解决方法
是(日期,时间,ID_z)的唯一约束
CREATE TABLE SEANSI(
SDATUMS DATE NOT NULL,LAIKS TIME NOT NULL,ID_F INTEGER,ID_Z INTEGER,VALODA VARCHAR(2) DEFAULT 'LATVIESU' NOT NULL,CONSTRAINT FM_VAL CHECK (VALODA IN ('LATVIESU','KRIEVU','ANGLU')),CONSTRAINT SAITE_S_FM FOREIGN KEY (ID_F) REFERENCES FILMAS(F_ID),CONSTRAINT SAITE_S_ZL FOREIGN KEY (ID_Z) REFERENCES ZALES(Z_ID),CONSTRAINT UQ_SEANSI UNIQUE (SDATUMS,LAIKS,ID_z) -- here
);
,
是否可以确保在同一日期和时间在一个电影院内不能有两个不同的会议?怎么样?
您需要唯一约束(或索引)。你可以用表格声明这一点:
CREATE TABLE SEANSI(
SDATUMS DATE NOT NULL,CONSTRAINT UNQ_SEANSI_SDATUMS_LAIK_IDZ UNIQUE (SDATUMS,LAIK,ID_Z)
);
约束保证每个日期/时间和 zales 有一行 - 所以,一部电影。
,您可以在这四列上创建唯一约束。此约束将强制组合为您想要的唯一。
ALTER TABLE SEANSI
add CONSTRAINT SEANSI_unique UNIQUE (SDATUMS,ID_F,ID_Z );
或者,如果您想在创建表时创建约束,则:
CREATE TABLE SEANSI(
SDATUMS DATE NOT NULL,CONSTRAINT SEANSI_unique UNIQUE (SDATUMS,ID_Z )
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。