開発環境
- 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と違いを比較するのも少し面白いなと思いました。