sql >> Database teknologi >  >> RDS >> Mysql

Hvordan indsætter man data fra en EXECUTE-sætning i mySql?

Som jeg forstår - id er AUTO_INCREMENT-feltet.

Så prøv at bruge dette script som et eksempel til din opgave -

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. Hvordan laver jeg en fuzzy match af firmanavne i MYSQL med PHP til autofuldførelse?

  2. Bedste MySQL-indstillingsværktøj til ydeevne?

  3. Brug af Postgresql JDBC-kilde med Apache Spark på EMR

  4. Hvordan kan jeg finde sql server portnummer fra Windows registreringsdatabasen?