Postgresql
dbeaver 在不執行的情況下檢查 sql 的語法
使用 dbeaver 工具,我想在不實際執行腳本的情況下檢查腳本是否存在語法錯誤。
目的:用於長插入查詢(postgresql 語法,PostgreSQL 10.15),形式為:
INSERT INTO schema1.table1 (t1_id, fk1_id, fk_2_id, col1, col2) VALUES (nextval('schema1.sq_table1'),fk1_id_1,fk1_id_2,col1_val_1,col1_val_2), -- etc, literally thousands of lines
我無法在非生產區域中執行查詢的生產版本,因為外鍵不同。
那麼有沒有辦法只檢查 SQL 的語法而不執行它。(它會在非生產區域引發外鍵約束錯誤,所以我*(*驗證語法,但我想加倍確定。
根據下面的評論,我認為對於這裡的情況(插入外鍵),外鍵違規錯誤會驗證語法,但仍然存在一般情況:是否可以驗證 SQL 的語法查詢而不實際執行它?我認為可能有幾種情況這會很有用。
如果您解釋您的查詢,它會被編譯但不會被執行。這意味著它會檢查語法錯誤,但不會針對您的數據驗證約束。
請注意,約束可能會影響編譯器。如果你還沒有讀過它,這裡有 Lucas Eder 的一篇很好的文章來討論這個問題。