精华内容
下载资源
问答
  • 如何同时修改数据库中两个表数据,并保证两次修改同时成功或者失败。 假如:A收入、B为商品售出记录,每卖一件商品,B创建一条出售记录,A根据B的主键创建一条收入信息, A为的外键是B的主键,售出一...

    让我们来思考,在什么情况下会出现需要同时修改连个表的操作?如何同时修改数据库中两个表数据,并保证两次修改同时成功或者失败。

    假如:A表收入表、B表为商品售出记录表,每卖一件商品,B创建一条出售记录,A根据B的主键创建一条收入信息,

    A表为的外键是B表的主键,售出一件商品,正确操作应该是:创建B表的一条数据,表示有商品售出,然后A表创建一条数据,表示收钱了,那么如果,B表插入数据成功,但是A表插入数据失败,就会产生一个问题,东西卖了,钱没入账!!!这就尴尬了。

     

    那好,问题产生,我们来解决问题,我们应该怎么做,首先B表要插入数据成功,要不然A是无法插入成功的,当然是判断A表数据插入是否成功,如果成功,那就万事大吉,当A表插入失败的时候,我们就要将之前创建的B表的数据删除。方法有很多,最开始我是在插入A之前保存插入B的信息,如果A插入失败,那么删除B表中的插入数据。

    一、当然我最终用的不是这种方法,而是Connetion中的 setAutoCommit()以及rollback() 方法。

    二、当然这里就不得不提到commit和rollback是数据库事务的两个概念。(具体可查看:http://blog.163.com/duanshui2009@126/blog/static/13500987820126552025870/ 解释很详细)

    三、当对数据库产生不可逆操作时,删除修改增加,Commit表示事物提交,意味着对事务中的操作确定,数据库只有接收到commit信息的时候才会对数据库进行保存。

                             Rollback表示回滚,意味着对事务的操作否定,会将数据库操作撤销。

    四、当然我们在使用jdbc对数据库进行数据操作时,是程序默认自动提交的。conn.setAutoCommit(false);//设置事务的提交方式为非自动提交,参数为true表示为自动提交

     

    明确以上四点,那么我们要做什么?

            conn = JDBCUtil.getConnection();
            conn.setAutoCommit(false);// 设置事务的提交方式为非自动提交
            String sql = "insert into B values(?)";
            int count = 0;
            psmt = JDBCUtil.createPst(sql);
            try {
                psmt.setString(1, "B表数据");// 插入B表数据
                count = psmt.executeUpdate();// B表插入数据,但是并不提交
                String sql1 = "insert into A values(?)";
                psmt = JDBCUtil.createPst(sql1);
                psmt.setString(1, "A表数据");
                count = psmt.executeUpdate();// A表插入数据,但是并不提交
                conn.commit();// 一切正常提交
            } catch (SQLException e) {// 出现异常,A或者B表数据插入失败
                try {
                    count = 0;
                    conn.rollback();// 滚回所有操作,将数据库返回到操作前。
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
                e.printStackTrace();
            } finally {
                try {
                    conn.setAutoCommit(true);// 设置事务提交方式为自动提交,这个不要省,否则下面的数据操作都需要手动提交
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                JDBCUtil.close(rs, psmt, null, conn);
            }
            if (count > 0) {
                return true;
            } else {
                return false;
            }

    展开全文
  • 如果表中数据尽量不要使用此语句,会造成数据丢失,应在备份的情况下进行修改。若有数据数据库会报错错误报告 -ORA-01439: 要更改数据类型, 则要修改的列必须为空01439. 00000 - "column to be modified ...

    alter table 表名 modify 字段名 字段类型(字段长度);


    如果表中有数据尽量不要使用此语句,会造成数据丢失,应在备份的情况下进行修改。

    若有数据 ,数据库会报错

    错误报告 -
    ORA-01439: 要更改数据类型, 则要修改的列必须为空
    01439. 00000 -  "column to be modified must be empty to change datatype"

    展开全文
  • 我从数据库用while(res.next)检索的所有数据,在jsp中用表格显示,现在我点击某一行的修改选项,就进入下一页面“修改”那一行的所有信息,总是修改表中全部信息 while(rs.next()){ %> <td align=...
  • 今天向MySQL数据库中的一张表添加含有...进一步确定是表和表中字段编码不当造成的,那就修改表和其中对应的字段呗,网上找了一会儿,你别说还真有,尽管如此还是认为有必要总结一下,古人云:好记性不如烂笔头嘛,呵呵

            今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1,然后再次仔细观察控制台输出的异常,进一步确定是表和表中字段编码不当造成的,那就修改表和其中对应的字段呗,网上找了一会儿,你别说还真有,执行完sql脚本后果然可以存入中文了,尽管如此还是认为有必要总结一下,古人云:好记性不如烂笔头嘛,呵呵呵。

             修改表的编码方式:ALTER TABLE `test` DEFAULT CHARACTER SET utf8;该命令用于将表test的编码方式改为utf8;
             修改字段的编码方式:ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL; 该命令用于将表test中name字段的编码方式改为utf8

    展开全文
  • 如何知道数据库表中数据是否手动修改
  • 如题, 数据库DATA,字段有id, name, date,有10行数据数据库DBTB,字段也是id, name, date,有20行数据如何用TA前10行的数据去覆盖BA的前10行数据? 谢谢!
  • 现需将ACCESS数据库中A表中B字段的数据类型修改一下,原为整形,现需要改为双精度型或长整型 要求如下: 1、先判断是否已更改了,若已更改,便不再更改 2、当没有更改时,将其修改为所需类型。
  • 给大家介绍了如何查看、创建以及修改数据库数据表的编码格式,另外还给大家分享了添加和删除外键的示例代码,文中介绍的很详细,对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友们下面来一起学习学习吧。
  • C# 如何以代码来创建、设置、修改、压缩、SQL Server数据库,在数据库中新建数据表 在数据表中修改数据列...(共11个针对数据的操作示例)
  • 根据B表、C表内容修改A表数据 A表中stuid为学生号,testid为考试号,1,2,3,4,5为考试小题号;B表中1,2,3,4,5内为学生答案, C表中的stid为小题号,daan为标准答案,fs为每小题得分。 请教:如何用update set ...
  • 1.查询服务器 2.通过服务器查出多个数据库 3.选定数据库查出多张表 4.将选定的表信息绑定到datagridview上 5.直接在datagridview上修改表数据数据库也修改
  • 有2个oracle数据库服务器 是物理隔离的 不能互相访问。2个数据库结构是一模一样的,2边的用户都能对某些做插入、删除或修改操作。如何实现2个数据库的双向同步,使同步后的2边数据库中表数据都是最新的?
  • 数据库表如何插入数据

    千次阅读 热门讨论 2015-11-22 19:43:41
    背景 最近做一级,我做的是Excel部分,因为期末老师就让我们的系统上线,...但是不知道大家有没有这样的经历,就是在导完题之后发现中间出了点问题,需要增加一条数据(删除和修改都是可以直接在数据库进行操作的,这

    背景

          最近做一级,我做的是Excel部分,因为期末老师就让我们的系统上线,让学生考试了。而且最近要先让学生能考试,对系统进行测试。所以整体来说,我们的系统还是比较紧张的。

    遇到的问题

          但是最近遇到个问题,在往数据库进行导题的过程中,部分的数据需要添加。但是不知道大家有没有这样的经历,就是在导完题之后发现中间出了点问题,需要增加一条数据(删除和修改都是可以直接在数据库进行操作的,这里就不赘述了。),但是数据库不像是我们操作Excel表格那样简单的插入一行就行了。那么如何处理这样的情况呢?
          在咨询过十期师哥和通过在网上查资料,发现是有解决这种问题的办法的,但是过程较为复杂。
          首先将要修改的数据表复制下来,粘贴到Excel表格里,粘贴格式选择:Unicode文本。然后在Excel表格里,进行你想要修改的一系列操作。注意:在第一行写上你数据库的字段名,否则后边的操作会出现数据问题。
          然后打开使用的数据库,在想要更新的那个数据库上右击,选择“任务”,再选择“导入数据”

    这里写图片描述

          接着会出现一个对话框提示:

    这里写图片描述

          点击下一步:

    这里写图片描述

          我的版本支持5.0的,看如果选择2007版本不支持的话就可以换个版本试试。这里有个复选框:首航包含列名称就是刚才说的第一行加的字段名,如果这里不选的话,它会从第二行开始取值。
          点击下一步:

    这里写图片描述

    这里写图片描述

          此时点击编辑映射,可以对你选择的表进行修改,查看类型是否正确,但是我建议在数据库里直接修改类型,还要稍微快一点。

    这里写图片描述

          点击完成就OK了。

    这里写图片描述

    思考

          数据库在这方面,感觉设计的就没有那么人性化了,整体是跟Excel差不多,既然知道可能会出现数据问题,既然删、改都做了,为什么不设计增加数据呢?其实从我个人角度,和作为用户的体验来说,觉得数据库这方面的设计还是有欠妥的地方的。

    展开全文
  • 文章目录1.代码2.说明 1.代码 ...其实这一段代码直接表示把数据库表数据取内这一列,更准确的是数据库表这一列没有仓库,然后这仓库这一列加上仓库,以上还要在循环,还有需要modify来修改. ...
  • 在项目有可能会直接修改数据库表,那么,具体该如何做呢?给大家讲一个往ADD-ON里面插入数据的例子吧,希望能起到抛砖引玉的作用。 首先,SE16查询:表名ZMARA 随便选择一条数据,选中查看明细: 在...
  • 使用IO流的技术将数据保存到本地文件 但是接下来我有这样一个需求:将下面的user.txt文件的王五年龄修改为35 张三 23 男 李四 24 男 王五 25 女 赵六 26 女 周七 27 男 我们要如何实现呢? 使用字符缓冲流...
  • oracle如何修改数据库表的结构

    千次阅读 2019-06-20 16:02:15
    1、增加表中的字段 2、增加多行字段 3、修改数据数据类型 4、修改表名 5、设置主键 6、删除主键 7、增添唯一约束 8、启动or禁用约束 9、删除多行字段 ...
  • C#如何从一个数据库表中读出数据,然后对其中的将数据进行修改后写入另外一个数据库。 主要是将查询出来的数据进行操作,怎么一个一个赋值给变量?
  • 在MySQL数据库中,所有的数据都存储在数据表中,若要对数据执行添加、查看、修改、删除等操作,首先需要在指定的数据库中准备一张数据表。下面将详细地讲解如何在MySQL中创建、查看、修改以及删除数据表。 1.2.1创建...
  • oracle数据库在逻辑上将数据存储在空间,在物理上将数据存储在数据文件空间分为:永久空间、撤销空间(undo)空间和临时空间。 创建永久空间 CREATE TABLESPACEmldn_data --空间名 DATA...
  • 但是一个数据库中有人多的,我们一个一个的写这样的话是很浪费时间的,那么如何能够批量生成上面类似的命令,一次性批量将数据库中所有的的前缀全都变更呢? 这时候我们可以使用select命令来查询到指定前缀的...
  • 下面我们将详细介绍如何创建,修改以及删除数据表!在上一篇文章《数据库增删改操作的图文详解(phpMyAdmin的使用教程1)》也简单的提到了创建数据表,只是大概说了下,没有进行深层次的介绍,那么在这篇文章我们来...
  • 数据库数据表创建及删除

    千次阅读 2015-05-18 20:04:59
    由于数据库的知识尚处于初学阶段,对于一些知识还不是很了解,所以不免会...那就是如何启动SQL Server 2008和数据库以及数据表的创建以及删除。  在网上着了很多的数据库视频讲解,最终选择了我要自学网的讲解视频(SQ
  • java导出数据透视 来自数据库行和的原始数据不能为人类读者提供太多了解。... 在本文,我将展示如何在不编写SQL的情况下就可以从纯Java数据库中计算数据数据透视。 您可以轻松地重用和修改本文...
  • 语义层数据库的维护包括数据表登记、数据表维护、数据备份、数据恢复四个部分,其中数据表维护功能不仅能将语义层中修改后的数据信息同步至数据库,而且还可以根据语义层定义的数据表数据库中创建对应的物理。...
  • 为了更新(修改表中数据,可使用UPDATE语句。 可采用两种方式更新UPDATE: 更新表中特定行 更新表中 所有行 不要省略WHERE子句 在使用UPDATE时一定要注意细心。 基本的UPDATE语句由3部分组成,分别是: 要...
  • java 读excel 还是比较方便简单的,原理就是,先用java 读取excel,然后,一行行...从Excel读取数据,生成新的Excel,以及修改Excel package common.util; import jxl.*; import jxl.format.UnderlineStyle; i...
  • 修改表结构 --修改数据表 ALTER TABLE 表名 SQL代码的书写不考虑顺序,但是批量执行代码需要要考虑好先执行哪些,后执行哪些 在修改数据表结构时,必须要明确:修改的字段是否存在数据,例如:如果需要更改一...
  • MySQL如何修改数据库名称 在Innodb数据库引擎下修改数据库名的方式与MyISAM引擎下修改数据库的方式完全不一样,如果是MyISAM可以直接去数据库目录mv就可以,Innodb如果用同样的方法修改会提示相关不存在 第一种...
  • SE16如何删除或修改数据库表

    千次阅读 2016-12-13 15:34:44
    进入后,在命令框输tcode:&sap_edit,回车,点击运行,即可进入修改界面。 或者  1) SE38 + LSE16NO02 把gd-edit 改为’X’.  2) SE16N返回后再执行一次.   方法二:se38,程序名:LSETBF01 查询:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,979
精华内容 791
关键字:

数据库如何修改表中数据