sql >> データベース >  >> RDS >> Mysql

Ruby on Rails(MySQL)の列名として「end」を使用する

    BEGINとENDはOracleとSQLServerで予約語ですが、MySQL それらをそのように見なさない

    ただし、そのPGErrorは、データベースエンジン自体(Ruby関連のランタイムではない)が「終了」のために実際にクエリを拒否したことを示しているように見えます。

    引用符で囲まれている場合は、予約語(およびスペースを含む名前)を使用できます。おそらく、ActiveRecordは生成されたSQLの識別子を引用していません。

    MySQL(http://dev.mysql.com/doc/refman/5.5/en/query-log.html)のログを見て、生成されたステートメントを確認します。

    そして、PGErrorはPostGreSQLを意味し、Heroku(PostgreSQL 8.3)について言及したので、これはENDが実際にPostgreSQLで予約語であるためだと思います: http://www.postgresql.org/docs/8.3/static/sql-keywords-appendix.html

    http://www.petefreitag.com/tools/sql_reserved_words_checker/?word=end



    1. データベース内の文字列のすべてのインスタンスを検索して置き換える方法は?

    2. Oracle:スキーマのシノニムを作成することは可能ですか?

    3. SQLのチューニング

    4. SSISを使用して、SQLServerからパラメーターを渡すADO.NETソースクエリをクエリする