2、選定外來鍵約束的種類,通過設定關鍵字ondelete的值實現:
通過foreignkey類來實現,並且可以指定表的外來鍵約束。
以下為user表為父表,article表為子表,通過user.id連線。
class
article
(base)
: __tablename__ =
'article'
id= column(integer,primary_key=
true
,autoincrement=
true
) title = column(string(50)
,nullable=
false
) content = column(text,nullable=
false
) uid = column(integer,foreignkey(
'user.id'))
#此處資料型別應與父表的id的資料型別相同
def__repr__
(self)
:return
""% self.title
class
user
(base)
: __tablename__ =
'user'
id= column(integer,primary_key=
true
,autoincrement=
true
) username = column(string(50)
,nullable=
false
)
1)restrict:父表資料被刪除,會阻止刪除。預設就是這一項。
2)no action:在mysql中,同restrict。
3)cascade:級聯刪除。即父表資料被刪除,子表也被刪除。
4)set null:父表資料被刪除,子表資料會設定為null。
uid = column(integer,foreignkey('user.id',ondelete="restrict"))
則在mysql中輸入delete from user where id = 1;
會報錯
資料庫(外來鍵及其約束理解)
一 首先是外來鍵的定義 如果乙個欄位x在一張表 表一 中是主關鍵字,而在另外一張表 表二 中不是主關鍵字,則字段x稱為表二的外來鍵 換句話說如果關係模式r1中的某屬性集不是自己的主鍵,而是關係模式r2的主鍵,則該屬性集稱為是關係模式r1的外來鍵。二 主鍵表和外鍵表的理解 1 以公共關鍵字作主鍵的表為...
資料庫 四種正規化
部分函式依賴 設x,y是關係r的兩個屬性集合,存在x y,若x 是x的真子集,存在x y,則稱y部分函式依賴於x。舉個例子 學生基本資訊表r中 學號,身份證號,姓名 當然學號屬性取值是唯一的,在r關係中,學號,身份證號 姓名 學號 姓名 身份證號 姓名 所以姓名部分函式依賴與 學號,身份證號 完全函...
資料庫事務四種隔離
未授權讀取 read uncommitted 允許髒讀取,但不允許更新丟失。如果乙個事務已經開始寫資料,則另外乙個資料則不允許同時進行寫操作,但允許其他事務讀此行資料。該隔離級別可以通過 排他寫鎖 實現。授權讀取 read committed 允許不可重複讀取,但不允許髒讀取。這可以通過 瞬間共享讀...