mysql:12648
From: Shuichi Nakagawa <Shuichi Nakagawa <nakagawa.shui@xxxxxxxxxx>>
Date: Wed, 18 Jan 2006 09:58:57 +0900
Subject: [mysql 12648] Re: Insert 構文でaliasって使えない?
中川@FJITです.
insert into tbl_name(col_name1, col_name2, col_name3)
values('aaa', 2,
と書き始めて
insert into tbl_name(col_name1, col_name2, col_name3)
values('aaa', 2, (select B.col_name3 + 1 from tbl_name as B where B.col_name1 ='aaa' and B.col_name2 =1));
と、してしまいましたが、
確かに
insert into tbl_name(col_name1, col_name2, col_name3)
select 'aaa', 2, B.col_name3 + 1 from tbl_name as B where B.col_name1 ='aaa' and B.col_name2 =1;
と、書けばサブクエリ使わなくて済みますね...ボケでした.
で、さっそくやってみたのですが、今度はキー違反になります.
tbl_nameは
col_name1, col_name2, col_name3
'aaa' , 1 , 11 <- これが入っていて
'aaa' , 2 , 12 <- これを追加したい
キーはcol_name1 + col_name2 で
'aaa'-2 のキー違反といわれます.
insert 前には存在しないレコードでキー違反と言われてるようですが、
先のサブクエリの制限と同様の仕様でしょうか.
CUT-----8<--------8<--------8<--------8<--------8<--------8<-------CUT
01/18 09:07に""F.Y" <fumi_sby@xxxxxxxxxx>"さんが出した
"[mysql 12645] Re: Insert 構文でaliasって使えない?"において、
>insert into tbl_name(col_name1, col_name2)
>select col_name2 + 1 from tbl_name
>where col_name1 = 'aaa';
>
>と書かない理由は何?
>
>> おっしゃるとおり、一旦サブクエリの値を取り出すしかないようです.
>>
>> スッキリしました.
>
>
>--------------------------------------
>GANBARE! NIPPON!
>Yahoo! JAPAN JOC OFFICIAL INTERNET PORTAL SITE PARTNER
>http://pr.mail.yahoo.co.jp/ganbare-nippon/
>
12642 2006-01-17 21:19 [Shuichi Nakagawa <na] Insert構文でaliasって使えない? 12643 2006-01-18 07:02 ┗[oppara <mlml@xxxxxxx] 12644 2006-01-18 08:29 ┗[Shuichi Nakagawa <na] 12645 2006-01-18 09:07 ┗["F.Y" <fumi_sby@xxxx] 12646 2006-01-18 09:27 ┣["F.Y" <fumi_sby@xxxx] 12647 2006-01-18 09:37 ┃┗["F.Y" <fumi_sby@xxxx] -> 12648 2006-01-18 09:58 ┗[Shuichi Nakagawa <na] 12649 2006-01-18 10:12 ┗["F.Y" <fumi_sby@xxxx] 12650 2006-01-18 10:40 ┗[Shuichi Nakagawa <na] 12651 2006-01-18 11:40 ┗[Shuichi Nakagawa <na]