[英]foreign key mysql
我有以下表格:
PROFILE table {
user_id INT,
apitype enum('facebook' , 'main')
}
USER table {
id INT
}
PROFILE.user_id
是指向USER表中ID的外鍵,但PROFILE.apitype = 'main'
所以基本上PROFILE.user_id
並不是指一個ID在user表中,如果PROFILE.apitype != 'main'
如何在MYSQL中完成此操作?
好吧,因為這是邏輯,所以應該在應用程序而不是數據庫中處理。
您可以在配置表中將user_id添加為可為空,使連接成為可選,並根據您使用的存儲引擎嘗試觸發器(盡管在mysql中對其了解不多)。
我認為您無法在Mysql中以簡單的方式完成此操作。
例如在Postgres中,您有一個檢查約束,您可以在其中檢查apitype是否為main,然后user_id必須為null。
在Mysql中,您只能使用觸發器執行此操作,但並非如此簡單。 我認為對您來說最簡單,最可靠的方法就是在您的應用程序中進行檢查。 但是您仍然可以在user_id上設置外鍵,即使有時它為null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.