У меня есть кусок кода 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
Я пытался добавить @ ответ Sick непосредственно перед утверждением END, но SQL Workbench (по альтер команды процедуры) не видит его.
Благодаря
Это близко, чтобы исправить, хотя вы должны использовать обратные кавычки вместо скобок ('[...]') вокруг имени таблицы. –
@ EdCottrell - Yep пропустил это :) –
Спасибо @Sick. Я обновил свой вопрос, чтобы показать вам трудности, с которыми я пытаюсь ваше решение. –