GCP PHP

【GCP】BigQuery DELETEで全件削除する方法

開発環境

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

-GCP, PHP