并提前感谢任何能够提供帮助的人。这张表如下所示。
发票表
id | delivery_statement_id | supply_statement_id
_|1|2
_|3|4
_|2|4<-不应传递给DB,因为id 2已在第一行中使用。
我想确保在整个数据库的2列之间存在唯一的ID
如果statement_id 1已被使用,则再也不能用于交付或供应语句。请帮忙,当我搜索这个问题时,我一直在获取多列的索引,但这只解决了行组合的问题。
感谢
我的理解是,您有一个具有以下结构的表:
"invoice"
(
id (primary key),
delivery_statement_id,
supply_statement_id
)
从列的名称来看,"delivery_statement_id"one_answers"supply_statement_id"是同一外部表的外键。。。比方说,他们指的是的"声明"
"invoice"
(
id (primary key),
delivery_statement_id -> statement(id),
supply_statement_id -> statement(id)
)
如果您有一个表"statement",并且希望避免从"delivery_statement_id"one_answers"supply_statement_id
"statement"
(
id (primary key),
/** some other columns **/
invoice_id (nullable, with unique constraint) -> invoice(id)
)
因此,首先在"statement"中创建行,而不引用任何发票然后设置deliverystatementid和supply_statementid设置每个值后,您必须将其"注册"到"语句"表中。。。这可以很容易地作为触发器实现,附加到"发票"表