sql >> Database >  >> RDS >> Mysql

Hoe gegevens uit een EXECUTE-instructie in mySql in te voegen?

Zoals ik begrijp, is id het veld AUTO_INCREMENT.

Dus, probeer dit script als voorbeeld voor je taak te gebruiken -

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. SUM gebruiken zodat NULL in kolommen de som NULL maakt

  2. Waarom kan ik niet meer dan één kolom tegelijk bijwerken met het trefwoord With?

  3. Hoe kan ik Emoji-tekens uit mijn invoer filteren, zodat ik kan opslaan in MySQL <5.5?

  4. Verbinding maken met MySQL met Python