好きな和訳タイトルを教えてください

既にあるカラムをコピーして、新たなカラムを作成したいのですが、うまくいきません。
どうしたらいいでしょうか?

INSERT INTO `rtable`.`3_column`
SELECT *
FROM `rtable`.`2_column`

実行すると、下記エラーになります。
#1142 - INSERT command denied to user 'DBユーザー名'@'localhost' for table '3_column'

通常のINSERTなら出来るのですが、この場合のINSERTは、何か特別な実行権限になるのでしょうか?
環境:レンタルサーバ


ちなみに、テーブルをコピーして、新規テーブル作成するのは、下記で出来たのですが、
「テーブルコピー」と「カラムコピー」では、何が違うのでしょうか?
INSERT INTO `データベース名`.`newtable`
SELECT *
FROM `データベース名`.`oldtable` ;

A 回答 (1件)

INSERT文は行データを追加するためのもので列データを追加するものではありません。



3_column列がrtableテーブルに存在するならUPDATE文を使用しましょう。
UPDATE `rtable` SET `3_column` = `2_column`;

3_column列がrtableテーブルに存在しないなら3_column列を追加後に上記のUPDATE文を流します。

列追加のためのSQLは以下の通りです。
ALTER TABLE `rtable` ADD `3_column` [データ型];

([データ型]部分は3_columnのデータ型にする必要があります。
 INTならALTER TABLE `rtable` ADD `3_column` INT;)
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
大変参考になりましたー

お礼日時:2012/10/20 13:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報