• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wleexi
V2EX  ›  程序员

下面的 SQL 求分析

  •  
  •   wleexi · May 11, 2020 · 2395 views
    This topic created in 2191 days ago, the information mentioned may be changed or developed.

    看到这样一段 sql,大概能看懂,想具体的学下,不知道该如何在搜索引擎搜素,来求点思路

    insert into table_name(id,md5_1,sn,`gmt_create`,`gmt_modified`) 
    select id,md5_1,sn ,`gmt_create`,now() from
    (select 'id','md5_1','sn','gmt_create',now() union all
    select 1111,null,null,null,null union all
    select 111,'md5_1','sn3', null, null) as a;
    
    
    6 replies    2020-05-12 12:15:15 +08:00
    wa8n
        1
    wa8n  
       May 12, 2020 via iPhone
    insert into select
    yungo8
        2
    yungo8  
       May 12, 2020 via Android
    insert into select from,第一次见到这么用是用来拷贝一个表数据到另一个表……
    levelworm
        3
    levelworm  
       May 12, 2020 via Android
    insert into select from, 我之前常用于建立临时表。。。
    xuanbg
        4
    xuanbg  
       May 12, 2020
    用 select 的结果集替代 values 的内容,一般用于倒腾数据、生成临时表记录和使用模板数据来生成记录。
    aitiancai
        5
    aitiancai  
       May 12, 2020
    会锁表吧,头两天从新闻上看的。
    CRVV
        6
    CRVV  
       May 12, 2020
    https://www.postgresql.org/docs/12/sql-insert.html

    把不必要的部分去掉,insert 的语法是
    INSERT INTO table_name { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }

    最常见的是 INSERT INTO table_name VALUES (1,2,3);
    这个等价于 INSERT INTO table_name SELECT 1,2,3;
    当然这个 SELECT 可以是任意的查询

    其实 SQL 里 VALUES 就是一个直接给出结果的查询,比如子查询也可以写 VALUES
    SELECT * FROM (VALUES (1, 2, 3)) as foo;
    SELECT * FROM (SELECT 1, 2, 3) as foo;
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3205 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 14:29 · PVG 22:29 · LAX 07:29 · JFK 10:29
    ♥ Do have faith in what you're doing.