Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql membuat tabel secara dinamis

Untuk membuat string mewakili nama tabel (atau database), Anda perlu menggabungkan string kueri Anda dengan variabel dan menyiapkan/mengeksekusi pernyataan langsung dalam prosedur tersimpan. Berikut ini contoh dasarnya.

-- DROP PROCEDURE IF EXISTS createLogTable;
DELIMITER //
CREATE PROCEDURE createLogTable(tblName VARCHAR(255))
BEGIN
    SET @tableName = tblName;
    SET @q = CONCAT('
        CREATE TABLE IF NOT EXISTS `' , @tableName, '` (
            `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
            `something` VARCHAR(10) NOT NULL,
            `somedate` DATETIME NOT NULL,
            PRIMARY KEY (`id`)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    ');
    PREPARE stmt FROM @q;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
    -- and you're done. Table is created.
    -- process it here if you like (INSERT etc)
END //

Lalu… CALL createLogTable('exampleTable');

Jadi ide dasarnya adalah

  1. gabungkan parameter prosedur dengan kueri Anda seperlunya
  2. menyiapkan/mengeksekusi pernyataan dari string kueri ini



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara terbaik untuk mengarsipkan database MySQL langsung

  2. Sisipkan beberapa baris menggunakan pilih

  3. Bagaimana cara melewatkan variabel sesi di url JDBC dengan benar?

  4. Mysql bergabung dengan pencocokan waktu

  5. Hibernate union-subclass (tabel per kelas beton) generator pemetaan kenaikan sangat lambat?