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

postgreSQL:行を複製する方法

    新しく挿入された行の新しいIDを作成する必要があります:

    INSERT INTO web_book( 
       id, page_count, year_published, file, image, 
       display_on_hp, name, description, name_cs, 
       name_en, description_cs, description_en
    )
    SELECT nextval('web_book_id_seq'), 
           page_count, 
           year_published, 
           file, 
           image, 
           display_on_hp, 
           name, 
           description, 
           name_cs, 
           name_en, 
           description_cs, 
           description_en 
    FROM web_book WHERE id=3;
    

    ClodoaldoNetoで述べたように、ID列を省略し、デフォルトの定義に任せるだけで、作業が少し簡単になります。

    INSERT INTO web_book( 
       page_count, year_published, file, image, 
       display_on_hp, name, description, name_cs, 
       name_en, description_cs, description_en
    )
    SELECT page_count, 
           year_published, 
           file, 
           image, 
           display_on_hp, 
           name, 
           description, 
           name_cs, 
           name_en, 
           description_cs, 
           description_en 
    FROM web_book WHERE id=3;
    

    この場合、シーケンス名を知る必要はありません(ただし、何が起こっているのかは少しわかりにくいです)。



    1. 4 PL/SQL匿名ブロックの例

    2. MySQLSUMIFフィールドb=フィールドa

    3. デフォルトの順序に基づいて2セットを結合します

    4. mysqlクエリの<>の意味は何ですか?