質問編集履歴

3

タグテーブルにユニーク制約を追加

2022/07/31 12:21

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -56,6 +56,9 @@
56
56
  (1, 1),(1, 2),
57
57
  (2, 2),(2, 4),(2, 5),
58
58
  (3, 3);
59
+
60
+ -- タグテーブルにユニーク制約を追加( sazi様からのご指摘 2022/07/31 20:54 を受けての追加 )
61
+ ALTER TABLE my_tags ADD CONSTRAINT UNIQUE u_01 (`tag_kind_id`, `tag_name`);
59
62
  ```
60
63
 
61
64
  ### 具体例とご質問

2

インジェクションリスクについての言及を加筆

2022/07/31 10:15

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -163,3 +163,5 @@
163
163
 
164
164
  宜しくお願い致します。
165
165
 
166
+ (尚インジェクションリスクがある点はスルーしてください。)
167
+

1

ROW_COUNT() の部分を加筆

2022/07/31 10:02

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -129,7 +129,7 @@
129
129
  しかしこの方法は、整合性を保つために「既存確認」の前に`LOCK TABLES` が必要となり負荷が懸念されます。
130
130
 
131
131
  ### 自分で考えられる方法2
132
- 続いて考えれる方法としては、上記のような SELECT での「既存確認」はせず、最後の my_tag_holders への INSERT の際に INSERT IGNORE を使って「既存確認」をするというものです。
132
+ 続いて考えれる方法としては、上記のような SELECT での「既存確認」はせず、最後の my_tag_holders への INSERT の際に INSERT IGNORE を使って「既存確認」をするというものです。 最後に `ROW_COUNT()` して0ならロールバックし整合性を保つつもりです。
133
133
  ```php
134
134
  // my_fruits を INSERT して、$fruits_id を得る
135
135
  $dbh->query("