[解決済み] なぜPostgreSQLでは符号なし整数が使えないのですか?
2022-05-09 05:39:08
質問
この投稿に出会いました( MySQLにおけるtinyint、smallint、mediumint、bigint、intの違いは何ですか? で、PostgreSQLが符号なし整数をサポートしていないことに気がつきました。
なぜそうなるのか、どなたか教えてください。
ほとんどの場合、私はMySQLのオートインクリメント主キーとして符号なし整数を使用しています。このような設計の場合、データベースをMySQLからPostgreSQLに移植する際に、どのようにしてこれを克服することができますか?
ありがとうございます。
解決方法は?
postgresql に符号なし型がない理由はすでに説明されています。しかし、私は符号なし型にドメインを使用することをお勧めします。
http://www.postgresql.org/docs/9.4/static/sql-createdomain.html
CREATE DOMAIN name [ AS ] data_type
[ COLLATE collation ]
[ DEFAULT expression ]
[ constraint [ ... ] ]
where constraint is:
[ CONSTRAINT constraint_name ]
{ NOT NULL | NULL | CHECK (expression) }
ドメインは型に似ていますが、制約が追加されています。
具体的な例としては、以下のようなものがあります。
CREATE DOMAIN uint2 AS int4
CHECK(VALUE >= 0 AND VALUE < 65536);
この型を悪用しようとしたときのpsqlの結果は以下のとおりです。
<ブロッククオートDS1=# select (346346 :: uint2);
ERROR: ドメイン uint2 の値はチェック制約 "uint2_check" に違反します。
関連
-
[解決済み] PostgreSQLの場合。PostgreSQLのテーブルを表示する
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] どのバージョンのPostgreSQLを使用していますか?
-
[解決済み] PostgreSQLからのPL/pgSQL出力をCSVファイルに保存する
-
[解決済み] PostgreSQLでデータベースのコピーを作成する
-
[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?
-
[解決済み】PostgreSQLのエラーです。Fatal: ロール "username" が存在しません。
-
[解決済み] PostgreSQLのINSERT ON CONFLICT UPDATE(upsert)は除外された値をすべて使用します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLでバッファキャッシュにデータを読み込む方法
-
PostgreSQLのユーザーログイン失敗時の自動ロック解決策
-
どのように定期的にLinux上でpostgresqlのデータベースをバックアップする
-
Postgresqlのデータは、2つのフィールドを追加し、一意の操作を統合する
-
Postgresqlのセルフインクリメントidをキーにした場合の重複問題の解決
-
oracle_fdwを介してOracleデータにアクセスするためのPostgreSQLの手順
-
[解決済み] Postgres ENUMデータ型またはCHECK CONSTRAINT?
-
[解決済み] 'ユーザー "postgres" のパスワード認証に失敗しました'
-
[解決済み] PostgreSQLの場合。PostgreSQLですべてのテーブルのOWNERを同時に変更する
-
[解決済み] PostgreSQLのクエリで、整数を文字列に変換するにはどうすればよいですか?