2

私は初心者で、mysqlを使用しています。既存のテーブルcustomerからテーブルproductを作成したいのですが、顧客テーブルの選択した列のみを新しいテーブルに作成し、それも同じ構造で作成したいと考えています。たとえば、顧客テーブルにはDATEという名前の列があり、デフォルトは CURRENT_TIMESTAMPおよびON UPDATE CURRENT TIMESTAMPです。SO私は、この構造が新しいテーブルにも作成されることを望んでいます。

私は他の答えを見ましたが、それらは構造をコピーしません。私を助けてください

4

3 に答える 3

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構文を使用してデータをコピーする

あなたの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のデモです

于 2013-11-12T05:28:21.943 に答える
0

これを試して :

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

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

また

CREATE TABLE product  (DATE CURRENT_TIMESTAMP,ON UPDATE CURRENT TIMESTAMP )
       SELECT DATE,ON  FROM customer;  
于 2013-11-12T05:18:52.087 に答える