praegune kellaaeg 20.06.2025 00:30:53
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
b_alex
HV kasutaja

liitunud: 22.02.2008
|
18.09.2008 00:27:32
mysql ja autoincrement - kuid ROW ei lisandu, aga number uuendakse |
|
|
mysql ja autoincrement - kuid ROW ei lisandu, aga number uuendakse
just päev-teine nägin endal või kusagil, kuid ei leia ja ei tule meelde kus
näiteks statistika jäoks:
on tabel STAT, kus lahter S_ID ja S_URL
võiks teha S_ID autoincriment, aga siis iga uue külastamisega - lisatakse uus ROW, ja tabel kohe kasvab 150GB-ks
kusagil nägin, et oli mingi lihtne INSERT või UPDATE SQL ; või S_ID natuke teisiti "formuleerida" seda AUTOINCR, ja siis lisa ROW ei tehta, aga number ikka uuendatakse +1 iga kord.
ja kõige parem oleks, kui abistate kuidas nii teha, see ka võimalik peaks:
eelmises näidises oleks vaid üks ROW tabelis, ja kõik, või isegi null, aga autoincr value oleks "reaalne"
aga kui näiteks kodulehel on 10 unikaalseid urli, siis sooviks, et tabelis oleks 10 row, kus S_URL on need urlid, ja S_ID just see arv, mis seda urli klikitakse.
ehk midagi UPDATE STAT set S_ID=AUTOINCR where S_URL='http://pettu.com/kontakt.php'
siis oleks vaabse suurepärane kaotasin seda "dokumentatsiooni", kus just see kirjas oli, või unustasin kus nägin seda juttu
|
|
Kommentaarid: 22 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
20 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
18.09.2008 00:55:30
|
|
|
Jube keeruliseks oled asja ajanud..
Asenda see S_ID=AUTOINCR -> S_ID=S_ID+1 ja peaks korras olema (kui õigesti aru sain).
Lisaks: Minu arvates on "S_ID" veidi ebasobiv nimi sellele väljale. Pigem sobiks selle nimeks "clicks" või "hits" või midagi sellist.
See on siiski loendur, mitte identifikaator.
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
b_alex
HV kasutaja

liitunud: 22.02.2008
|
18.09.2008 01:13:47
|
|
|
S_ID lihtslt nimi pole veel tabel loodud, näide ülesanne isegi abs muu ja keerulisem, kuid nii viisi on lihtsam seletada
aga ei saanud su abist aru, mis ja kus asendada?
või, kui õige sain aru, et peab veel ennem update või inserti - tehe veel 1 SELECT, et uurida, mis viimane ID või num on? ehk
select sql bla bla *
ja siis
update või insert sql bla bla *
?
|
|
Kommentaarid: 22 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
20 |
|
tagasi üles |
|
 |
Celion
HV kasutaja

liitunud: 31.10.2002
|
18.09.2008 01:24:17
|
|
|
troglodyte mõtles seda, et see S_ID peaks olema täiesti tavaline number - ei mingit autoincrementi jms. Iga kord, kui lehel on uus külastus, liidad sinna ühe juurde: UPDATE STAT SET S_ID=S_ID+1 WHERE S_URL='foo'
_________________ Ostan Roger Zelazny "Amberi kroonikad" (soovitatavalt eesti keeles). |
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
b_alex
HV kasutaja

liitunud: 22.02.2008
|
18.09.2008 01:37:15
|
|
|
aaa, nüüd sain aru loll öö peas
p.s. aga olukord, kui seda URL lehe pole veel külastanud, siis pole midagi update teha
kui teha ennem sql - et veenduda kas ON juba url baasis, ja kui pole siis INSERT,
aga see ka kaua - kuna 2x korda SQL teha...
tänud ikka, ka see aitab, aga äkki keegi ja ka teie - ei tea INSERTIGA kuidas teha? * mõtlemas ise ka...
|
|
Kommentaarid: 22 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
20 |
|
tagasi üles |
|
 |
iceincube
HV veteran

liitunud: 18.11.2005
|
18.09.2008 01:41:51
|
|
|
ON DUPLICATE KEY peaks olema märksõnaks,
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
Äkki mõltesid seda ja on abi
|
|
Kommentaarid: 39 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
37 |
|
tagasi üles |
|
 |
b_alex
HV kasutaja

liitunud: 22.02.2008
|
18.09.2008 02:42:50
|
|
|
-- MYSQL Server version: 3.23.58
CREATE TABLE `tab2` (
`a` int(11) NOT NULL default '0',
`b` varchar(255) NOT NULL default '',
`c` int(11) NOT NULL default '0',
PRIMARY KEY (`b`)
) TYPE=MyISAM;
INSERT INTO tab2 (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
proovige, kas nimetatud teil töötaks? ja mis ver mysql=? äkki selles viga
mis puudus? mysql ver? või mis tüüpi field peaksid olema?
|
|
Kommentaarid: 22 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
20 |
|
tagasi üles |
|
 |
iceincube
HV veteran

liitunud: 18.11.2005
|
|
Kommentaarid: 39 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
37 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|