Open4

SQLチートシート・Tips集🌟

まさぴょんまさぴょん

未来日のイベントだけを取得する

  • from が開始日時
  • to が終了日時
  • CURRENT_DATE()で現在日時を取得する
-- 未来日のイベントだけを取得する SQL
SELECT *
FROM events
WHERE `from` > CURRENT_DATE()
ORDER BY `from` ASC;
  • JSで扱うときも同様に、バッククォートで囲む
// fromは予約語なのでバッククォートで囲む
const query = `
  SELECT * 
  FROM events 
  WHERE ${`from`} > CURRENT_DATE() 
  ORDER BY ${`from`} ASC;
`;
まさぴょんまさぴょん

【SQL】ON DELETE CASCADEについて

  • onDelete: "CASCADE" は、データベースにおいて外部キー制約の一部として使用されるオプションで、親テーブルの行が削除された際に、関連する子テーブルの行も自動的に削除することを指定します。
  • このオプションを使用することで、手動で子テーブルの行を削除する手間を省き、データベースの一貫性と整合性を簡単に維持することができます

具体的には、以下のように動作します:

  1. 親テーブルの行削除: 親テーブルの特定の行を削除する際、その行に関連付けられている子テーブルの行も自動的に削除されます。
  2. 子テーブルの連動削除: 子テーブルに外部キー制約を設定し、その外部キー制約に onDelete: "CASCADE" を適用すると、親テーブルの行削除時に子テーブルの関連行も削除されるようになります。

子テーブルに設定するオプションである

onDelete: "CASCADE" オプションは、親テーブルと子テーブルの関係を定義する際、子テーブルに設定するものです。
このオプションにより、親テーブルの行が削除された場合に、子テーブルの関連する行も自動的に削除されます。

設定方法のポイント:

  1. 子テーブルの外部キー制約: onDelete: "CASCADE" は子テーブルの外部キー制約の一部として設定します。
  2. 親テーブルの指定は不要: 親テーブル自体にこのオプションを設定するのではなく、親テーブルの行が削除されたときに子テーブルの行も削除するという動作を子テーブルの外部キーに指定します。

https://qiita.com/tasty_uni/items/abdd691bbc8efd3362c7