[英]how to use regex in mysql UPDATE query?
我有 2 個表,一個是另一個表可以具有的參數表,它們的存儲方式如下:
表格1
id name
1 var1
2 var2
3 var3
表 2
id name parameters
1 name1 var1|var3
2 name2 var2
3 name3 var1|var2|var3
現在,當我運行 DELETE 查詢時,我還想更新表 2 的參數,所以假設我對表 1 第 1 行運行 DELETE 查詢,我想得到以下表 2 的結果,我應該查詢它:
表 2
id name parameters
1 name1 var3
2 name2 var2
3 name3 var2|var3
任何幫助將不勝感激,謝謝
如果您尚未固化此代碼,我強烈建議您在模式變得難以管理之前對其進行重新設計。
在Table 2
中處理這種情況的正確方法不是對Table 1
的鍵值進行分隔,而是為每個id
存儲多行。 然后,當從Table 1
中刪除時, FOREIGN KEY
約束可以強制執行ON DELETE CASCADE
,這將成為非問題。
示例表 2 數據如下所示:
id name
1 name1
1 name1
2 name2
3 name3
3 name3
3 name3
Table 2
的定義如下所示:
CREATE TABLE Table_2
(
id INTEGER NOT NULL,
name VARCHAR() NOT NULL,
FOREIGN KEY fk_id (id) REFERENCES Table_1 (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
恕我直言,您在這里有一個小的數據庫設計問題。 您必須通過執行以下操作來規范化表 2:
id pk 名稱 UK 參數 UK
參數應該有 1 個值。 所以你的第 3 行應該分成兩行:
3 name3 var2
4 name3 var3
或者如果它太復雜,就像 cularis 說的那樣,添加第三個表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.