Php 我正在组织更多的表格,非常有趣,很高兴您能超越原始参数。我将等待更长的时间,看看是否有人认为他们值得一提的答案,但这很可能会得到赏赐:“不客气。”我的灵感来自乔·塞尔科。我将在答案中添加一个相关的引用。这是一个很好的答案,但我会在审计数据中包含用户身份(即
Php 我正在组织更多的表格,非常有趣,很高兴您能超越原始参数。我将等待更长的时间,看看是否有人认为他们值得一提的答案,但这很可能会得到赏赐:“不客气。”我的灵感来自乔·塞尔科。我将在答案中添加一个相关的引用。这是一个很好的答案,但我会在审计数据中包含用户身份(即,php,mysql,sql,Php,Mysql,Sql,我正在组织更多的表格,非常有趣,很高兴您能超越原始参数。我将等待更长的时间,看看是否有人认为他们值得一提的答案,但这很可能会得到赏赐:“不客气。”我的灵感来自乔·塞尔科。我将在答案中添加一个相关的引用。这是一个很好的答案,但我会在审计数据中包含用户身份(即请求者)。虽然在上述答案的正文中提到了这一点,但我强烈建议您从第一天开始这样做(注意,您不能及时返回以确定是谁要求提供信息)。 DELIMITER $$ CREATE PROCEDURE `FetchRows`(IN StartID INT,
我正在组织更多的表格,非常有趣,很高兴您能超越原始参数。我将等待更长的时间,看看是否有人认为他们值得一提的答案,但这很可能会得到赏赐:“不客气。”我的灵感来自乔·塞尔科。我将在答案中添加一个相关的引用。这是一个很好的答案,但我会在审计数据中包含用户身份(即请求者)。虽然在上述答案的正文中提到了这一点,但我强烈建议您从第一天开始这样做(注意,您不能及时返回以确定是谁要求提供信息)。
DELIMITER $$
CREATE PROCEDURE `FetchRows`(IN StartID INT, IN EndID INT)
BEGIN
UPDATE Blah SET ViewCount = ViewCount+1 WHERE id >= StartID AND id <= EndID;
# ^ Assumes counts are stored in the same table. If they're in a seperate table, do an INSERT INTO ... ON DUPLICATE KEY UPDATE ViewCount = ViewCount+1 instead.
SELECT * FROM Blah WHERE id >= StartID AND id <= EndID;
END$$
DELIMITER ;
CREATE TABLE AuditTable
(
ID int
IDENTITY -- SQL Server
SERIAL -- Postgres
AUTO_INCREMENT -- MySQL
NOT NULL,
ItemID int NOT NULL,
RequestDateTime datetime NOT NULL
)
SELECT ItemID, Col1, Col2, ...
FROM MainTable
WHERE <complex criteria>
CREATE TEMPORARY TABLE TempTable
(
ItemID int NOT NULL,
Col1 ...,
Col2 ...,
...
)
ENGINE = MEMORY
SELECT ItemID, Col1, Col2, ...
FROM MainTable
WHERE <complex criteria>
;
INSERT INTO AuditTable (ItemID, RequestDateTime)
SELECT ItemID, NOW()
FROM TempTable;
SELECT ItemID, Col1, Col2, ...
FROM TempTable
ORDER BY ...;
MERGE INTO AuditTable
USING
(
SELECT ItemID, Col1, Col2, ...
FROM MainTable
WHERE <complex criteria>
) AS Src
ON 1 = 0
WHEN NOT MATCHED BY TARGET THEN
INSERT
(ItemID, RequestDateTime)
VALUES
(Src.ItemID, GETDATE())
OUTPUT
Src.ItemID, Src.Col1, Src.Col2, ...
;