Door
Dennis B
op 30-10-2014 21:04
gewijzigd op 30-10-2014 21:04
1.125 views
Hallo,
Ik heb een kolom Sequence, deze moet per insert één erbij optellen. Dus als er maar 1 record geinsert wordt, staat er maar een keer een 1. Worden er meerdere records geinsert in één keer, komt er bv 1,2,3 te staan.
dus de kolom ziet er dan ongeveer als volgt uit:
1
2
3
4
1
2
1
2
3
1
1
Hoe kan ik bovenstaande voor elkaar krijgen zonder Auto Increment? Met behulp van php of sql?
INSERT INTO Order (OrderID, Seq) VALUES ('10001', '1')
INSERT INTO Order (OrderID, Seq) VALUES ('10001', '2')
INSERT INTO Order (OrderID, Seq) VALUES ('10001', '3')
en dan voor de volgende bijvoorbeeld:
INSERT INTO Order (OrderID, Seq) VALUES ('10001', '1')
INSERT INTO Order (OrderID, Seq) VALUES ('10001', '2')
[size=xsmall]Toevoeging op 30/10/2014 22:00:54:[/size]
Nee ik heb geen auto increment aanstaan, dit ik ook niet de bedoeling, ik wil dit via sql/php regelen maar niet via de ai
Anders een query maken die eerst de hoogste 'Seq' ophaalt en dat die 'Seq' met 1 verhogen bij de insert.
Zoals:
SELECT Seg FROM order ORDER BY Seq DESC LIMIT 1
INSERT INTO order SET OrderID = 10001, Seq = $seq + 1
Die $seq in de update query komt uit de select query en heeft dus altijd de hoogste seq waar hij 1 bij op telt (heb de PHP code er niet bij gedaan, neem aan dat je dat wel weet)...
Okee, het is juist de bedoeling dat hij niet bij de hoogste seq op gaat tellen. Dus daarom kan auto_increment niet gebrukt worden.
Ik maak bijvoorbeeld een order en de orderartikelen krijgen die seq. Per order wil ik bij de artikelen 1,2,3 enz hebben. maak ik daarna weer een nieuwe order aan, moet hij weer vanaf 1 beginnen te tellen.