以下查询在PostgreSQL中的含义是什么?我知道它与锁定相关,但有人能解释一下吗?
我需要每年将receipt_id重置为1,例如1/2017、1/2018等。 我正在使用查询。
如果找到id,则将其加1,否则将其设置为1。这样做是否正确?
select col1, col2 from table where col1=123 for update;
实际上我有一个类似于下面的表格:
id col1 col2 receipt_id receipt_year
1 ddd ggg 1 2018
2 ddd eee 2 2018
我需要每年将receipt_id重置为1,例如1/2017、1/2018等。 我正在使用查询。
select max(receipt_id) from table where receipt_year=$current_year;
如果找到id,则将其加1,否则将其设置为1。这样做是否正确?
id col1 col2 receipt_id receipt_year
1 ddd ggg 1 2018
2 ddd eee 2 2018
2019年:
id col1 col2 receipt_id receipt_year
1 ddd ggg 1 2018
2 ddd eee 2 2018
3 lol lpl 1 2019
目前我是这样做的:
$current_year = date('Y');
$sql = SELECT MAX(receipt_id) AS receipt_id FROM table WHERE receipt_year=:year;
$stmt = $conn->prepare($sql);
$stmt->execute(array(':year' => $current_year));
$receipt_ido = $stmt->fetchColumn();
if ( ! empty($receipt_ido)) {
$receipt_id = ($receipt_ido + 1);
} else {
$receipt_id = 1;
}