みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

カラムをコピーして、新規カラムを作成したい

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

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` ;

投稿日時 - 2012-10-19 13:31:16

QNo.7755895

暇なときに回答ください

質問者が選んだベストアンサー

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;)

投稿日時 - 2012-10-19 18:42:21

お礼

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

投稿日時 - 2012-10-20 13:37:33

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問