2016-05-15 8 views
1

、私はこれを行う場合は:sqlite3の中で、私はINTEGERフィールドに保存された文字列を持って、Sqlite3 - なぜ整数フィールドに文字列を挿入できますか? PostgreSQLでは

LINE 1: INSERT INTO numbers(n) VALUES('a'); 
            ^

しかし:

CREATE TABLE numbers (n INTEGER); 
INSERT INTO numbers(n) VALUES('a'); 

私が得ます。

なぜsqlite3がINTEGERの値を のINTEGERフィールドに挿入できないのを防ぐのですか?

答えて

0

単純な答えは、それらが異なるデータベースであり、必ずしも同じ標準に準拠しているとは限りません。 Postgresはデータをどのように処理するかにより厳しく、より正式であり、理にかなっていないことをしようとすると通常はエラーが発生します。この場合、INTEGERに明示的に変換またはキャストすることなく、文字列または文字を整数フィールドに割り当てることはできません。これは適切な動作です。 Sqlite(およびMySql)は、あまり厳密ではなく、必ずしも有効ではなく、意味があるとは限りません。

関連する問題