我是新手,我正在使用 mysql 。我想从现有表客户创建表产品,但我只想在新表中创建客户表的选定列也有相同的结构。例如,在客户表中,有一个名称为 DATE 的列,其默认为CURRENT_TIMESTAMP , ON UPDATE CURRENT TIMESTAMP 。所以我希望这个结构也在新表中创建。
我查看了其他答案,但他们没有复制结构。请帮帮我
答案 0 :(得分:4)
这是你可以做的事情
CREATE TABLE new_table LIKE old_table
语法创建具有相同结构的新表ALTER TABLE new_table DROP COLUMN unnecessary_column
语法删除新表中不必要的列INSERT INTO new_table ... SELECT ... FROM old_table
语法复制数据假设你的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;