我想创建一个复杂的主键,它来自两个不同的列,也是IDENTITY。例如:
我的表:
angular.module('demo')
.directive('directiveName', function() {
...
});
我希望主键值如下所示:
create table Location (
locationID int primary key,
lat int not null,
lng int not null,
)
lat = 43
lng = 567
如果已经有一个以“43.567”开头的locationID,则会添加“-1”。
有可能吗?
答案 0 :(得分:0)
我自己没有测试,但可以使用触发器
http://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html
但是,如果尝试在没有主键值的情况下发出查询,则可能会出现问题
答案 1 :(得分:0)
你也可以使用复合键,这里你可以使用lat和lng。复合键的优点在于,只有一个构成列的值必须是唯一的。
答案 2 :(得分:0)
您可以制作复合主键,但它仍然必须是唯一的。你要做的事没有意义。您试图通过向重复项添加任意值来强制非唯一值是唯一的,以使其成为唯一。
解决这个问题的正确方法是不要使用重复的lat / lng组合,或者只使用LocationID作为主键。