社区
Web 开发
帖子详情
如何将多个字段同时插入多个表中?
davidforever
2006-04-11 08:36:20
假设我有两个表A,B.A表有三个字段A1,A2,A3,A1为主键,B表有三个字段B1,B2,B3,B1为主键,B3为外键,A,B两表通过A1,B3连接.如何同时将值插入这几个字段中?该INSERT语句该怎样写???
...全文
160
8
打赏
收藏
如何将多个字段同时插入多个表中?
假设我有两个表A,B.A表有三个字段A1,A2,A3,A1为主键,B表有三个字段B1,B2,B3,B1为主键,B3为外键,A,B两表通过A1,B3连接.如何同时将值插入这几个字段中?该INSERT语句该怎样写???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiaoyonggang
2006-04-12
打赏
举报
回复
建议用 存储过程 或存储函数 可以保证 同步!
langya333
2006-04-12
打赏
举报
回复
学习
lcllcl987
2006-04-12
打赏
举报
回复
建议用存储过程。存储过程其实蛮好写。如果实在不会,就用jdbc的事务处理,贴一个批量运行sql的代码:
/**
* Excute sql
*/
public boolean doStatement(String[] sqlStrs)
{
boolean flag = false;
if (sqlStrs.length < 1)
return false;
try
{
InitialContext initial = new InitialContext();
ds = (DataSource) initial.lookup(dbjndi);
con = ds.getConnection();
con.setAutoCommit(false);
stmt = con.createStatement();
//System.out.println("sqlStrs.length:" + sqlStrs.length);
int count = sqlStrs.length / 7000 + 1;
System.out.println("count:" + count);
int end = 0;
for (int ii = 0; ii < count; ii++)
{
stmt.clearBatch();
end = (ii + 1) * 7000;
if (end > sqlStrs.length)
end = sqlStrs.length;
for (int i = ii * 7000; i < end; i++)
{
//modify by lcl
if (sqlStrs[i] != null && sqlStrs[i].trim().length() > 0)
stmt.addBatch(sqlStrs[i]);
System.out.println("in DbOperate.doStatement sql : " + sqlStrs[i]);
}
stmt.executeBatch();
//System.out.println("excute back:" + ii + "Strins begin:" + ii * 7000 + " end :" + end);
}
con.commit();
System.out.println("excute sql finished!");
flag = true;
}
catch (NamingException ee)
{
//System.out.println("DbOperate.java : find data source error, " + ee.toString());
stmtStr = "find data source error";
flag = false;
}
catch (Exception ex)
{
stmtStr = StringTool.removeNewline(ex.toString());
ex.printStackTrace();
if (ex.toString().indexOf("ORA") > 0)
stmtStr = StringTool.removeNewline(ex.toString().substring(ex.toString().indexOf("ORA") + 10));
//System.out.println("err String :" + stmtStr);
flag = false;
try
{
con.rollback();
}
catch (Exception ee)
{
ee.printStackTrace();
stmtStr = StringTool.removeNewline(ee.toString());
}
flag = false;
}
finally
{
try
{
con.setAutoCommit(true);
}
catch (SQLException e)
{
// TODO ???? catch ?
e.printStackTrace();
}
if (stmt != null)
{
try
{
stmt.close();
}
catch (SQLException e1)
{
// TODO ???? catch ?
e1.printStackTrace();
}
}
if (con != null)
{
try
{
con.close();
}
catch (SQLException e1)
{
// TODO ???? catch ?
e1.printStackTrace();
}
}
}
return flag;
}
ehai0991
2006-04-12
打赏
举报
回复
我也想学学 ,用存储过程怎么做呢?
guo__peng
2006-04-12
打赏
举报
回复
怎么可以用视图呢?
视图一次只可以更新一个表的数据的,建议用存储过程
liuzhijie0451
2006-04-12
打赏
举报
回复
用回滚语句就可以,只有所有的插入都正常才好使,要不一条也不插入。
feng1071
2006-04-12
打赏
举报
回复
使用及联插入
fashi1000
2006-04-11
打赏
举报
回复
建个视图
mysql同时
插入
两个
字段
_mysql 怎么给一个表一次增加
多个
字段
? ?
DIEAmysql为一个表增加
多个
字段
的语法为:ALTER TABLE 表名 ADDCOLUMN `
字段
名1` 数据类型(长度) [DEFAULTNULL],ADDCOLUMN `
字段
名2` 数据类型(长度) [DEFAULTNULL];其中,defaultnull为可选内容。举例,已知表admin...
MySQL怎么添加
字段
在指定列位置、怎么一次添加
多个
字段
?
怎么添加
字段
在指定列位置、怎么一次添加
多个
字段
?自定义目录标题MySQL语句实现添加
多个
字段
在指定列位置 MySQL语句实现添加
多个
字段
在指定列位置 在使用navicat15管理MySQL数据库时,发现选择某列点击添加
字段
...
mysql将
多个
表的
多个
数据
插入
到同一张表
工作需要将二十
多个
表的两个
字段
同时
插入
到一张总
表中
,网上找了不少资料,终于测试完成了 直接上图吧 这里加了count(*)是因为有时候当天的数据没有,这样只查sales
字段
就不会有数据,所以加个count(*就有...
Mysql将一个
表中
字段
值
插入
到另外一个表某个
字段
INSERT INTO 表名(
插入
字名段) select 需要获取的
字段
名 from 源表名
sql 向
表中
插入
新数据时,同时
插入
另一张
表中
某些
字段
的数据
sql 向
表中
插入
新数据时,同时
插入
另一张
表中
某些
字段
的数据 向
表中
插入
新数据时,同时
插入
另一张
表中
某些
字段
的数据 向一张
表中
插入
数据,一部分
字段
的数据为自定义,另一部分
字段
的数据来源于另一张表 INSERT INTO...
Web 开发
81,094
社区成员
341,717
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章