今天閒著沒事,突然想起乙個以前遇到的乙個小問題。一直忘了來驗證自己的解決方案,所以今天特意來查詢了些資料來驗證下自己的想法。整理如下:
單張表內建立聯合主鍵:
classiottemp(models.model):
mac = models.charfield(max_length=64, blank=false)
temperature = models.floatfield(default=0.0)
seq_no = models.integerfield(blank=false, null=false)
time = models.datetimefield(auto_now=false)
order_id = models.charfield(max_length=32, blank=true, null=true, verbose_name=u'
訂單id')
user = models.charfield(max_length=text_len, blank=true, verbose_name=u'
所屬人'
)
#seq_no,order_id,mac作為聯合主鍵保證資料不重複
class
meta:
iot'
unique_together = (("
seq_no
", "
order_id
", "
mac"
),) verbose_name_plural = u"
通用溫度表
"
關聯表內建立聯合主鍵:
classuser(model):
id=autofield(primary_key=true)
name = charfield(max_length=30)
age =integerfield()
class
role(model):
id=autofield(primary_key=true)
name=charfield(max_length=10)
#這是兩個model有乙個roleuser的model來描述use與role的關係,需要user的id與role的id做外來鍵,也做聯合主鍵,如下:
class
roleuser(model):
userid=foreignkey(user)
roleid=foreignkey(role)
class
meta:
unique_together=("
userid
","roleid
")
當使用django的orm來建立資料時,如果建立的資料已經存在,django會對這個執行語句報錯。
如果有一批資料要建立,不存在的直接建立存在的進行更新(類似於mysql的duplicate
key
update
)或者不進行任何操作(類似於mysql的ignore),那該如何來做麼?
#存在則放棄
try:
temp = iottemp.object.create(order_id=1,seq_no=1,mac="
wode111
",temperature=22.22,time="
2018-08-08 11:11:11
",user="
admin")
except
exception as e:
pass
#相當於ignore
#存在則更新
try:
temp = iottemp.object.create(order_id=1,seq_no=1,mac="
wode111
",temperature=22.22,time="
2018-08-08 11:11:11
",user="
admin")
except
exception as e:
temp = iottemp.object.filter(order_id=1,seq_no=1,mac="
wode111
").update(temperature=33.33,time="
2019-09-09 22:22:22
",user="
admin
")
Django如何建立聯合主鍵
1 資料庫中的每張表只能有乙個主鍵,不可能有多個主鍵 2 所謂乙個表多個主鍵,我們稱之為聯合主鍵 3 主鍵的作用是保證資料的唯一性和完整性,同時通過主鍵檢索表增加檢索速度 class iottemp models.model seq no models.integerfield blank fals...
MySQL聯合主鍵儲存 mysql聯合主鍵
聯合主鍵就是多個表的主鍵聯合起來作為乙個表的主鍵 這個是摘抄的別人的 create table products description products id int 11 not null,language id int 11 not null default 1 products name v...
聯合主鍵SQL 聯合索引
聯合主鍵索引 聯合索引 alter table dbo tb shop add constraint shopno unique nonclustered shopgid asc prodgid asc skugid asc with pad index off,statistics norecom...