A表10列
B表15列
在A表中选出一行或几行,复制到B表中。
并在额外的5列附加上相同的属性。A表
a11,a12,a13,a14,a15
a21,a22,a23,a24,a25
B表
a11,a12,a13,a14,a15,b1,b2,b3
a21,a22,a23,a24,a25,b1,b2,b31.select into 好像不行,mysql原因
2.insert into select也不行,因为列数不一样
3.insert into values(select A,b1,b2,b3)也不行.
B表15列
在A表中选出一行或几行,复制到B表中。
并在额外的5列附加上相同的属性。A表
a11,a12,a13,a14,a15
a21,a22,a23,a24,a25
B表
a11,a12,a13,a14,a15,b1,b2,b3
a21,a22,a23,a24,a25,b1,b2,b31.select into 好像不行,mysql原因
2.insert into select也不行,因为列数不一样
3.insert into values(select A,b1,b2,b3)也不行.
实际上,a表是应用信息。b表是一个a表的操作记录,保存对a表的改动。所以要在a表各列信息的基础上,附加上时间和改动人等信息。
>B表15列
>在A表中选出一行或几行,复制到B表中。
>并在额外的5列附加上相同的属性。>A表
>a11,a12,a13,a14,a15
>a21,a22,a23,a24,a25
>B表
>a11,a12,a13,a14,a15,b1,b2,b3
>a21,a22,a23,a24,a25,b1,b2,b3>1.select into 好像不行,mysql原因
>2.insert into select也不行,因为列数不一样方案1; insert into B表 select a11,a12,a13,a14,a15,' ' from A表 where 条件追加;
这个做不行,为啥不行,请明确说来!>3.insert into values(select A,b1,b2,b3)也不行.>多谢,不过这样不行。
>实际上,a表是应用信息。b表是一个a表的操作记录,保存对a表的改动。所以要在a表各列信息>的基础上,附加上时间和改动人等信息。这样说不能明白,请详细说明业务需求! 如果从sql 文的规约,方案1;是可以执行的.
>2.insert into select也不行,因为列数不一样
这个原因,不能接受!
B表的列是不是有制约啊?请确认!
因为B表在包含A表所有内容的基础上,还附加了另外几列。
所以用insert into select 后会有
Column count doesn't match value count at row 1
且即使成功后还需要在填充后几列信息。对于逻辑我在补充一下,
比如说:
A表是Billboard前50名的信息。包括歌曲名,歌手,等等。
B表是A表的维护记录。除了包括A表的内容外,还要附加上序号,修改者姓名,修改时间,进行的操作(添加,删除,修改)。
b表的制约:有一个列是自增长的序号,有一个enum,有一个timestamp(自动当前时间),有一个varchar
insert into
select a.column1,a.column2,...b1column1,b1column2,b1column3
from a为什么不行?
>insert into
>select a.column1,a.column2,...b1column1,b1column2,b1column3
>from a
你这样简单描述,我还是不明白,对不起。
简单看看你上面sql文是不是,不正确啊?
如果方便的话。请把,表的构造粘上来。
然后,请再详细描述你需要的数据!这样,我能会为你出一份力量。〉对于逻辑我在补充一下,
〉比如说:
〉A表是Billboard前50名的信息。包括歌曲名,歌手,等等。
〉B表是A表的维护记录。除了包括A表的内容外,还要附加上序号,修改者姓名,修改时间,进
〉行的操作(添加,删除,修改)。
〉b表的制约:有一个列是自增长的序号,有一个enum,有一个timestamp(自动当前时间),有
〉一个varchar从你这段描述,你应该用更新来实行你的需求比较好噢。
A表:
排名1,专辑1,歌手名1,发行时间1。
5 黄金甲,周润发,2005-5-5
B表:
排名1,专辑1,歌手名1,发行时间1,序号1,操作人1,操作时间1,操作内容1。
5 , 黄金甲,周润发,2005-5-5, 35, 甲, 2007-7-7, 添加
B表的序号和操作时间是自动生成的。
如果一个操作人一次进行了多个记录的更新,那么b表的操作人和操作内容是相同的。
另外,通过JDBC返回自动增加的序列号,可以实现我的要求,但是比较麻烦。
insert into B表(排名1,专辑1,歌手名1,发行时间1) select * from A表 where 专辑名='黄金甲',statement.return_generated_keys.
key=rs.getInt(0){
stmt.executeUpdate(update B表 set 操作人和操作内容)
}
我的能力有限,不能为你出一份力!
但是,我想说的。应用程序的开发,不要太依靠,SQL文。这是,我个人的意见!〉B表的序号和操作时间是自动生成的。
B表的序号是通过sequence文生成的吗?
操作时间是通过default生成的吗?
我想应该不是吧!行!我想你已经找到答案了。我是在跟你学习!谢谢!