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

mySqlにEXECUTEステートメントからデータを挿入する方法は?

    私が理解しているように、idはAUTO_INCREMENTフィールドです。

    したがって、このスクリプトをタスクの例として使用してみてください-

    CREATE TABLE table1(
      id INT(11) NOT NULL AUTO_INCREMENT,
      column1 VARCHAR(255) DEFAULT NULL,
      column2 VARCHAR(255) DEFAULT NULL,
      PRIMARY KEY (id)
    );
    
    CREATE TABLE table2(
      id INT(11) NOT NULL AUTO_INCREMENT,
      column1 VARCHAR(255) DEFAULT NULL,
      column2 VARCHAR(255) DEFAULT NULL,
      PRIMARY KEY (id)
    );
    
    INSERT INTO table1 VALUES 
      (1, 'c1', 'c2'),
      (2, 'c3', 'c4');
    
    SET @source_table = 'table1';
    SET @target_table = 'table2';
    SET @id = 'id';
    
    SET @columns = NULL;
    SELECT group_concat(column_name) INTO @columns FROM information_schema.columns
    WHERE
      table_schema = 'database_name' -- Set your database name here
      AND table_name = @source_table
      AND column_name != @id;
    
    SET @insert = concat('INSERT INTO ', @target_table, '(', @id, ',', @columns, ') SELECT NULL, ', @columns, ' FROM ', @source_table);
    PREPARE stmt1 FROM @insert;
    EXECUTE stmt1;
    DEALLOCATE PREPARE stmt1;
    


    1. postgresqlでJSONのsetof/キーの数を数える方法は?

    2. JDBCパラメーターverifyServerCertificate=falseは、clientkeystoreとtruststoreを必要とせずに接続します

    3. PostgreSQL:count()またはカウンターを保持しますか?

    4. 主キーのマージの競合を自動的に解決する