在Mysql中从现有表的选定列创建一个表,并具有相同的结构

时间:2013-11-12 05:10:36

标签: mysql sql

我是新手,我正在使用 mysql 。我想从现有表客户创建表产品,但我只想在新表中创建客户表的选定列也有相同的结构。例如,在客户表中,有一个名称为 DATE 的列,其默认为CURRENT_TIMESTAMP ON UPDATE CURRENT TIMESTAMP 。所以我希望这个结构也在新表中创建。

我查看了其他答案,但他们没有复制结构。请帮帮我

3 个答案:

答案 0 :(得分:4)

这是你可以做的事情

  1. 使用CREATE TABLE new_table LIKE old_table语法创建具有相同结构的新表
  2. 使用ALTER TABLE new_table DROP COLUMN unnecessary_column语法删除新表中不必要的列
  3. 使用INSERT INTO new_table ... SELECT ... FROM old_table语法复制数据
  4. 假设你的customer表格似乎是

    CREATE TABLE customer
    (
      id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
      name VARCHAR(5), 
      created DATETIME, 
      modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      other_column INT
    );
    

    您想创建一个新表customer_new,但没有other_column

    CREATE TABLE customer_new LIKE customer;
    ALTER TABLE customer_new DROP COLUMN other_column;
    INSERT INTO customer_new (id, name, created, modified)
    SELECT id, name, created, modified
      FROM customer;
    

    这是 SQLFiddle 演示

答案 1 :(得分:2)

使用这个

CREATE TABLE NEW-TAB SELECT NAME,DATE FROM OLD-TAB;

请根据您的要求更改COLUMN / TABLE名称

答案 2 :(得分:0)

试试这个:

create table product(DATE CURRENT_TIMESTAMP,ON UPDATE CURRENT TIMESTAMP );

INSERT INTO product (DATE,ON) SELECT DATE,ON FROM customer ;

OR

CREATE TABLE product  (DATE CURRENT_TIMESTAMP,ON UPDATE CURRENT TIMESTAMP )
       SELECT DATE,ON  FROM customer;