0

我使用了postgresql。在 sql fiddle 中创建表并在数据库模式中插入一些数据后 -

CREATE TABLE stock_table
    (trade_type character varying, trade_date timestamp, trade_code_id bigint, trade_code character varying, qty_out double precision, qty_in double precision, price double precision, row_num bigint, stock_volume double precision)
;
COMMENT ON TABLE stock_table
  IS '
trade_type: 
  SI: Initial quantity in stock
  SS: Stock Sell
  SB: Stock Buy
';

INSERT INTO stock_table
    (trade_type, trade_date, trade_code_id, trade_code, qty_out, qty_in, price, row_num, stock_volume)
VALUES
    ('SB', '2016-11-30 13:35:12', 52, 'ACI', 0, 600, 1037.28, 1, 600),
    ('SI', '2016-11-30 13:37:12', 53, 'IFIC', 0, 300, 1357.38, 2, 300),
    ('SS', '2016-12-01 11:35:12', 53, 'IFIC', 100, 0, 1354.16, 3, 200),
    ('SS', '2016-12-01 13:36:37', 53, 'IFIC', 150, 0, 1355.25, 4, 50),
    ('SS', '2016-12-01 14:35:12', 52, 'ACI', 100, 0, 1035.26, 5, 500),
    ('SS', '2016-12-01 14:36:12', 52, 'ACI', 200, 0, 1035.04, 6, 300),
    ('SB', '2016-12-01 14:36:20', 53, 'IFIC', 0, 1040, 1356.44, 7, 1090),
    ('SB', '2016-12-01 16:35:12', 52, 'ACI', 0, 1560, 1045, 8, 1860),
    ('SS', '2016-12-02 13:35:12', 52, 'ACI', 120, 0, 1039.08, 9, 1740),
    ('SS', '2016-12-02 13:45:12', 53, 'IFIC', 100, 0, 1358.95, 10, 990),
    ('SB', '2016-12-02 13:55:12', 52, 'ACI', 0, 600, 1038.71, 11, 2340),
    ('SB', '2016-12-02 14:05:12', 53, 'IFIC', 0, 1040, 1363.3, 12, 2030),
    ('SS', '2016-12-03 13:35:12', 52, 'ACI', 100, 0, 1037.78, 13, 2240),
    ('SB', '2016-12-04 13:35:12', 53, 'IFIC', 0, 20, 1365.87, 14, 2050),
    ('SB', '2016-12-04 17:35:12', 52, 'ACI', 0, 50, 1054.19, 15, 2290)
;

我试图更新某一列上某一行的数据。

update stock_table
set trade_type = 'SI'
where row_num = (SELECT row_num FROM stock_table 
                 WHERE (trade_date between '2016-12-01' and '2016-12-03')
                 and trade_code='ACI'
                 and trade_type='SB'
                 LIMIT 1);

select * from stock_table;

它可以工作并使用更新的数据库显示结果。但是在我运行查询以单独显示表之后,select * from stock_table它显示初始数据库 - 没有更新。更新仅在我同时运行updateselect all查询时显示。你能告诉我这是为什么吗?这是sql小提琴

4

0 回答 0