Kom ihåg mig?
Home Menu

Menu


MySQL Max antal inlägg

Ämnesverktyg Visningsalternativ
Oläst 2010-12-29, 11:24 #1
vidirs avatar
vidir vidir är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 291
vidir vidir är inte uppkopplad
Medlem
vidirs avatar
 
Reg.datum: Jan 2004
Inlägg: 291
Standard MySQL Max antal inlägg

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?
vidir är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 11:34 #2
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Du behöver ju radera dem. Skapa en trigger som automatiskt raderar vid INSERT kanske?
jonny är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 11:38 #3
vidirs avatar
vidir vidir är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 291
vidir vidir är inte uppkopplad
Medlem
vidirs avatar
 
Reg.datum: Jan 2004
Inlägg: 291
aha, i php scriptet,, undrade dock om det fanns en funktion man kunnde ställa in i t.ex. phpmyadmin eller något..
vidir är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 13:01 #4
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Jonny menade triggers i MySQL

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

Och ja, den kan du fixa i phpMyAdmin
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 13:05 #5
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
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
-> ;;
Observera att det är helt otestat.
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 14:10 #6
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
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)
... har inte hunnit debugga ännu....
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 15:28 #7
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Tror inte man kan manipulera samma tabell som man har triggern på. Därav felet gissar jag.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 23:07 #8
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
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:
Within a stored function or trigger, it is not permitted to modify a table that is already being used (for reading or writing) by the statement that invoked the function or trigger.
Ref: http://dev.mysql.com/doc/refman/5.0/...trictions.html

Senast redigerad av Conny Westh den 2010-12-30 klockan 19:12
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:34.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017