我在设置正确的约束以确保表中只有一列并且只有一个匹配的列时遇到问题。
例如,苹果公司有彭博代码AAPL:US
,并且只有此代码。否则,SQL Server会发现错误。
我尝试使用具有唯一性的约束,但是它不起作用。
答案 0 :(得分:1)
我想象您的架构可能是使用联结表的标准架构。也就是说,您的表可能类似于:
company (id, name)
ticker (id, name)
company_ticker (id_company, id_ticker)
也就是说,company_ticker
表是一个连接表,用于存储公司和股票代码之间的关系。通常,此表默认为多对多。但是,如果要将公司限制为只有一个股票行情,则可以在id_company
列上设置唯一的约束:
CREATE TABLE company_ticker (
id_company INT NOT NULL,
id_ticker INT NOT NULL,
PRIMARY KEY (id_company, id_ticker),
CONSTRAINT cnstr UNIQUE (id_company)
);
有了上述唯一约束,您的架构将只允许给定的公司与某些股票代号建立一种关系。