
開発環境
- GCP
- PHP
概要
GCPのBigQueryをPHPで実装していたとき、テーブル内のデータを全件削除するタイミングがありました。
$query = "DELETE FROM テーブル名";といつものように、全件削除しようとすると
"message": "DELETE nust have a WHERE clause at [1:1]"と怒られてしまいました。
BigQueryのDELETEには、必ずWHERE句を含まないといけないようです。
結論
WHERE true を入れることで解決しました。
$query = "DELETE FROM テーブル名 WHERE true";危うく、IDをWHERE カラム in で入れてしまうところでした、
$query = "DELETE FROM テーブル名 WHERE テーブルid in (1,2,3,4,5...)";BigQueryは少し処理に時間がかかるため、できるだけ無駄な処理は避けたいものです。
MySQLに慣れているので、他のDBと違いを比較するのも少し面白いなと思いました。