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

PostgreSQLに複数のENUM値を挿入します

    CREATE TYPEを使用できます 列挙型を宣言するには:

    CREATE TYPE tfoo AS ENUM('foo','bar','dummy');
    

    そして、アレイ を使用します 値を格納するために:

    CREATE TABLE foo (foo_id serial, foo_enum tfoo[]);
    

    挿入するには:

    INSERT INTO foo(foo_enum) VALUES('{foo,bar}');
    

    または

    INSERT INTO foo(foo_enum) VALUES(ARRAY['foo','bar']::tfoo[]);
    

    別のアプローチは、別のテーブルを使用して列挙型とfooテーブルへの外部キーを格納することです。例:

    CREATE TABLE foo (foo_id serial primary key);
    CREATE TABLE foo_enums (foo_id integer references foo(foo_id), value tfoo);
    

    そして、複数の値をfoo_enumsに挿入します :

    INSERT INTO foo(foo_id) VALUES(nextval('foo_id_seq'));
    INSERT INTO foo_enums(foo_id, value) VALUES
        (currval('foo_id_seq'), 'foo'),
        (currval('foo_id_seq'), 'bar');
    



    1. エラー:32GBのRAMがあり、スワップファイルがないマシンのメモリが不足しています

    2. トリガーを使用してSQLServerからMySqlにデータを挿入する

    3. 自動コミットをグローバルにfalseに設定する方法

    4. MySQLに時間間隔の値を保存する最良の方法は?