1 行也选取不出来。
>> 解答
A 先生使用 BEGIN TRANSACTION 启动了事务处理,然后开始执行 INSERT
语句。因此,在 A 先生使用 COMMIT 确定该更新之前, B 先生等其他用户都无法看
到 A 先生进行更新的结果。这就是基于 ACID 特性中的 I,也就是独立性(Isolation)
的现象。当然,由于 A 先生在 COMMIT 之前能看到自己进行过的更新,因此如果 A
先生执行 SELECT * FROM Product; 的话,会得到 3 条记录。
顺便提一下,如果想要确认该现象,并不需要两个人。只需使用电脑打开两个窗
口连接同一个数据库,一个人就能完成两个人的工作了。

因为商品编号列违反了主键约束,所以会发生错误, 1 行也插入不了。
>> 解答
如果该 INSERT 能够正常执行的话, Product(商品)表的状态应该会像下面
这样变为 6 行数据。
但是,显然上述记录违反了商品编号列的主键约束(不能存在主键重复的记录)。
违反该约束带来的后果就是无法执行更新操作,这就是 ACID 特性中的 C—— 一致
性(Consistency)。

/*
下面是问题中的SELECT语句
*/
-- 商品利润表
CREATE TABLE ProductMargin
(product_id CHAR(4) NOT NULL,
product_name VARCHAR(100) NOT NULL,
sale_price INTEGER,
purchase_price INTEGER,
margin INTEGER,
PRIMARY KEY(product_id)); /*
下面是解答示例
*/
-- 将Product表中的数据插入到ProductMargin表中
INSERT INTO ProductMargin (product_id, product_name, sale_price, purchase_price, margin)
SELECT product_id, product_name, sale_price, purchase_price, sale_price - purchase_price
FROM Product; -- 确认插入数据
SELECT * FROM ProductMargin;

-- 1.下调销售单价
UPDATE ProductMargin
SET sale_price = 3000
WHERE product_id = ''; -- 2.利润再计算
UPDATE ProductMargin
SET margin = sale_price - purchase_price
WHERE product_id = ''; -- 确认数据更新
SELECT * FROM ProductMargin;

最新文章

  1. Easyui 让Window弹出居中与最大化后居中
  2. 腾讯云TCCE培训认证 精彩的第一次
  3. Asp.Net MVC4入门指南(10):第三方控件Studio for ASP.NET Wijmo MVC4 工具应用
  4. maven web启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener
  5. 甘特图和PERT图
  6. php 单引号 双引号 ,php字符串/ hmtl / 数据库显示/ 及php的几个转化函数
  7. rem 和 ::
  8. asp.net 多个文件同时下载
  9. Metrics.NET report to Zabbix
  10. cocosbuilder学习汇总
  11. HTML5 初始文档声明
  12. WPF/Silverlight中的RichTextBox总结
  13. python--socket粘包
  14. eclipse配置tomcat后启动报内存错误解决方法
  15. 信号报告-python
  16. Spark源码剖析 - SparkContext的初始化(九)_启动测量系统MetricsSystem
  17. IO流中File文件最常用和直接的用法
  18. HTML5学习笔记(十七):访问器和class关键字
  19. 扫描网站服务器真实IP的小脚本
  20. CYDIA装了个插件,想删除怎么都删除,电脑如何删除插件?

热门文章

  1. Java 将数据写入磁盘并读取磁盘上的文件
  2. mysql 存储引擎入门
  3. C#:string、stringBuffer、stringBuilder的区别
  4. [百度之星]资格赛:IP聚合
  5. redmine处理规范
  6. 官网英文版学习——RabbitMQ学习笔记(九)总结
  7. 【LeetCode】不同二叉搜索树
  8. css快速浏览
  9. 如何下载安装python安装包
  10. Day 17:缓冲输出字符流和用缓冲输入输出实现登录、装饰者设计模式