Schrift
[thread]3561[/thread]

doppelte einträge beim insert



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Froschpopo
 2005-04-18 18:59
#33167 #33167
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
manchmal kommts vor, besonders bei CGI-Scripten, dass einige Inserts in meine mysql datenbank doppelt sind.
Da man das Problem mit perl als frontend anscheinend nicht lösen kann, würd mich mal interessieren ob es da eine Lösung von mysql gibt.. ?
renee
 2005-04-18 19:08
#33168 #33168
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
*) den richtigen Primärschlüssel finden!
*) überprüfen, ob es einen solchen Eintrag schon gibt
*) Stichwort: INSERT INTO... ON DUPLICATE ENTRY
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Froschpopo
 2005-04-18 19:16
#33169 #33169
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
bisher überprüft ja mein CGI-Script mit einem Statement ob es den Eintrag scvhon gibt... aber das Script ist recht groß und wenn in der zwischenzeit jemand anderes denselben datensatz anlegt wärend das eine script noch arbeitet, ist es doppelt in der datenbank.
pq
 2005-04-18 19:20
#33170 #33170
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
- REPLACE
- du musst mit transaktionen arbeiten, das ist kurz gesagt so etwas wie ein lock.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2005-04-18 19:23
#33171 #33171
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,18.04.2005, 17:16]aber das Script ist recht groß und wenn in der zwischenzeit jemand anderes denselben datensatz anlegt wärend das eine script noch arbeitet, ist es doppelt in der datenbank.[/quote]
oh mann... das hat nichts mit der größe des skriptes zu tun (warum denken
männer immer sowas?). es hat was mit der häufigkeit der aufrufe zu tun,
und selbst bei einem aufruf pro tag im schnitt hast du die gefahr, dass
zwei prozesse gleichzeitig was ändern wollen.
die wahrscheinlichkeit ist halt größer, je mehr aufrufe du hast.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Froschpopo
 2005-04-18 19:36
#33172 #33172
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
doch das hat was mit der größe des scriptes zu tun ! wenn ich z.b. zweimal ganz schnell hintereinander auf einen submit-button klicke passiert dasselbe ! wenn das script kleiner ist, hat es die prüfung, ob ein eintrag schon vorhanden ist schneller hinter sich.
Hier arbeitet ja nicht jeder mit mod_perl\n\n

<!--EDIT|Froschpopo|1113838617-->
GwenDragon
 2005-04-18 19:45
#33173 #33173
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
Wenn du nicht willst, dass Tabellen von anderen Prozessen verändert werden, mußt du ein LOCK verwenden.
Syntax LOCK TABLES ...

Aber ein Blick in die MySQL Doku könnte auch nicht schaden!
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Froschpopo
 2005-04-18 19:48
#33174 #33174
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
das betrifft nicht die Tabelle. Ich möchte nur verhindern, dass jemand versehendlich (z.b. beim zu schnellen Doppelklick) nen doppelten Eintrag macht.
GwenDragon
 2005-04-18 20:15
#33175 #33175
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,18.04.2005, 17:48]das betrifft nicht die Tabelle. Ich möchte nur verhindern, dass jemand versehendlich (z.b. beim zu schnellen Doppelklick) nen doppelten Eintrag macht.[/quote]
Dann musst du in dein Skript eine Sperre einbauen, nach der erst wieder nach 2 Sekunden vom User gepostet/geladen werden darf.
Das geht über Sessions.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

renee
 2005-04-18 21:08
#33176 #33176
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Also mittlerweile sind schon einige Möglichkeiten genannt worden. Hast Du schon was davon ausprobiert??
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2005-04-18 18:59.