FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
Undrar om man kan begränsa på något sätt kommentar inlägg i databas att det lagras bara 50 senaste, allt annat äldre raderas?
|
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Supermoderator
|
Du behöver ju radera dem. Skapa en trigger som automatiskt raderar vid INSERT kanske?
__________________
Jonny Zetterström se.linkedin.com/in/jonnyz | bjz.se | sajthotellet.com | kalsongkungen.se | zretail.se | zetterstromnetworks.se | webbhotellsguide.se | ekonominyheter24.se | nyamobiltelefoner.se | gapskratt.se | antivirusguiden.se | jonny.nu |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Medlem
|
aha, i php scriptet,, undrade dock om det fanns en funktion man kunnde ställa in i t.ex. phpmyadmin eller något..
|
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Banned
|
Jonny menade triggers i MySQL
http://dev.mysql.com/doc/refman/5.0/en/triggers.html Och ja, den kan du fixa i phpMyAdmin |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Har WN som tidsfördriv
|
Något som liknar detta bör lösa det:
Kod:
mysql> delimiter ;; mysql> create trigger foo -> after insert on entries -> for each row -> begin -> DELETE FROM entries WHERE id < (SELECT min(id) FROM (SELECT id FROM entries ORDER BY id DESC LIMIT 50) AS myselect); -> end -> ;; |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Klarade millennium-buggen
|
Om du har svar eller kommentarer till ett inlägg som du raderar på detta sätt så kommer din databas att få tuppjuck efter ett tag, det är mao en mycket dålig idé att radera gamla inlägg i en tråd.
Däremot kan man radera gamla tådar om du raderar hela tråden. Men frågan är om det är så btra det heller för ofta vill man kunna se gamla trådar, men det är en annan fråga. F.ö. generade triggern följande fel: Kod:
ERROR 1442: Can't update table 'entries' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. SQL Statement: INSERT INTO `test`.`entries` (`title`, `body`, `user_id`) VALUES ('1', '1', 1) |
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Har WN som tidsfördriv
|
Tror inte man kan manipulera samma tabell som man har triggern på. Därav felet gissar jag.
|
|||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Klarade millennium-buggen
|
Ja, jag har hittat fler som har upptäckt samma problem i MySQL. Andra tabeller verkar gå utmärkt att manipulera men inte just samma tabell. Söker dock vidare...
Hittade en referens som anger att det helt enkelt inte funkar att påverka eller ens läsa med SELECT från den tabell som triggern körs ifrån: Citat:
Senast redigerad av Conny Westh den 2010-12-30 klockan 19:12 |
||
![]() |
![]() |
Svara |
|
|