webForumDet fria alternativet

Stored procedure

Databaser & SQL

5 svar · 508 visningar · startad av thalle

Medlem sedan dec. 20073 inlägg
Frågan#1

Skulle vilja ta bort information i databasen som är äldre än två veckor.
Gissar att stored procedure är vägen att gå...?
Går gör det ju säkert, men skulle behöva en lite fingervisning hur.
Har tidsstämpel på varje rad i form av 'date och 'time'.

Tack på förhand.
/T

Medlem sedan jan. 20022 440 inlägg
#2

det borde gå göra nåt i stil med

delete from tblTest where date < datediff(month, (DATEADD(month, -1, getdate())), getdate())

helt otestat.

Medlem sedan jan. 20022 440 inlägg
#3

Ursäkta mig vet inte vad jag skrev hehe, lösningen blir

delete from tblTest where date < (dateAdd(day,-30,getdate()))

Du kan göra det som en SP om du vill...

create procedure spGetRidOfOldStuff
as
begin
	delete from tblTest where date < (dateAdd(day,-30,getdate()))
end
go

om du kör MS SQL.

Medlem sedan dec. 20073 inlägg
#4

Okej, tack för snabbt svar...ska testa. Kör MySQL för detta.

Läst lite till kring detta, fick för mig att detta var något som snurra hela tiden. Men verkar som man måste gör ett CALL på proceduren för att det ska köras?

Var ju mer ute efter något som sköts automatiskt...

Medlem sedan jan. 20022 440 inlägg
#5

Du kan på din php? sida anropa den funktionen varje dag när första användaren besöker sidan. Jag kan inte MySQL men tror inte du har möjligheten att köra det automatiskt om du inte äger servern själv.

I MS SQL kan man får det automatiskt med schemaläggaren men då måste du ha administratörs rättigheter både till databasservern och servern som databasen ligger på.

Medlem sedan dec. 20073 inlägg
#6

Visst kan jag göra det via php, men det förutsätter ju att man går in på sidan. Sidan är bara för eget bruk och tanken var att slippa gå in på sidan varje dag.
Hade varit fint om det skulle kunna köras helt självt.

Frågan i sig fungerar : SELECT * FROM table WHERE (table.date < curdate()-30);

Så frågan får nästan formuleras om, kan man schemalägga mysql frågor i mysqlservern?

/T

370 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
118 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)