Flask資料庫 外來鍵及其四種約束講解

2021-09-28 17:56:01 字數 1153 閱讀 5647

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 允許不可重複讀取,但不允許髒讀取。這可以通過 瞬間共享讀...