標準sql ではテーブル別名に予約語使用が可能なのでしょうか。
解決したいこと
予約語をテーブル名等々に利用すべきではないとの事は良く目にするのですが、
標準sql ではテーブル別名に予約語使用が可能なのでしょうか。
試しているのはpostgresql ver 11 系です。
発生している問題・エラー
begin;
insert into table_a
select *
from table_b
commit;
問題というか、これが正しく動作しているように見えてしまって手間取りました。
構文エラー報告されず、なぜかcommitしてない。commitがテーブルへの別名と解釈されているようです。
本来書くべきであったsql
begin;
insert into table_a
select *
from table_b;
commit;
テーブル別名にsql予約語使用(試したのはcommitのみですけど)は可能。
select *
from table_b
commit
where commit.id > 1;
テーブル別名予約語禁止の約束があればエラーのセミコロンもっと速く気づいたと思うのですが、
何か理由があって禁止されていないのでしょうか。
0