我有一段SQL代碼從ELMAH存儲過程中的SQL Server下采取:如何在mysql中編寫這個特定的查詢?
DELETE FROM [ELMAH_Error]
WHERE ErrorId NOT IN (SELECT TOP 100 ErrorId FROM ELMAH_Error ORDER BY TimeUtc DESC)
我現在遷移網站到MySQL改用了,我不知道如何翻譯這個代碼。
我必須這段代碼之後添加翻譯:
CREATE DEFINER=`b43638b86659eb`@`%` PROCEDURE `elmah_LogError`(
IN ErrorId CHAR(36),
IN Application varchar(60),
IN Host VARCHAR(30),
IN Type VARCHAR(100),
IN Source VARCHAR(60),
IN Message VARCHAR(500),
IN User VARCHAR(50),
IN AllXml TEXT,
IN StatusCode INT(10),
IN TimeUtc DATETIME
)
MODIFIES SQL DATA
BEGIN
INSERT INTO `elmah_error` (
`ErrorId`,
`Application`,
`Host`,
`Type`,
`Source`,
`Message`,
`User`,
`AllXml`,
`StatusCode`,
`TimeUtc`
) VALUES (
ErrorId,
Application,
Host,
Type,
Source,
Message,
User,
AllXml,
StatusCode,
TimeUtc
);
END
我嘗試添加@剛剛結束的聲明,但SQL工作臺(通過ALTER PROCEDURE命令)之前生病的迴應並不這麼看。
感謝
這是接近正確,但你應該使用反引號,而不是括號('[...]' )圍繞表名稱。 –
@EdCottrell - 是的錯過了:) –
謝謝@Sick。我更新了我的問題,向您展示了我嘗試解決方案時遇到的困難。 –