🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych
4 messages
4 total messages Started by Borneq Tue, 03 Jan 2017 18:11
[mySQL] insert/update ?
#195172
Author: Borneq
Date: Tue, 03 Jan 2017 18:11
16 lines
1444 bytes
Mam tabelę z której pobieram
"select field from ta_tabela where block_number=numerbloku"
jeśli nic nie zwróci - wtedy blok/rekord nie zaczęty
jeśli zwróci 0 - zaczęty
jeśli zwróci 1 - zakończony

Teraz chciałbym np wpisać 1, ale gdy nie ma rekordu - powinien utworzyć, 
gdy jest - zmodyfikować na 1
Mam http://dev.mysql.com/doc/refman/5.7/en/update.html
Ale chyba będzie błąd gdy nie będzie rekordu?
Jak mieć funkcjonalność zarówno insert jak i update, czy najpierw dawać 
selecta?
W mySQL są takie połączone komendy jak
DROP TABLE IF EXISTS
CREATE TABLE if not exists
czy w moim przypadku jest coś takiego ?
Re: [mySQL] insert/update ?
#195173
Author: Borneq
Date: Tue, 03 Jan 2017 19:32
15 lines
1353 bytes
W dniu 03.01.2017 o 19:11, Borneq pisze:
> czy w moim przypadku jest coś takiego ?

Jest coś takiego jak REPLACE
dev.mysql.com/doc/refman/5.7/en/replace.html

ale

"REPLACE works exactly like INSERT, except that if an old row in the 
table has the same value as a new row for a PRIMARY KEY or a UNIQUE 
index, the old row is deleted"

Działa bardziej jak Insert, a nie Update. Co zrobić gdy mam klucz 
primary, chcę zmienić jedno pole a wszystkie inne (czy drugie) zostawić 
bez zmian?
Re: [mySQL] insert/update ?
#195174
Author: Borneq
Date: Tue, 03 Jan 2017 20:44
11 lines
1314 bytes
W dniu 03.01.2017 o 20:32, Borneq pisze:
> Działa bardziej jak Insert, a nie Update. Co zrobić gdy mam klucz
> primary, chcę zmienić jedno pole a wszystkie inne (czy drugie) zostawić
> bez zmian?

Wiem!
http://stackoverflow.com/questions/12218185/mysql-replace-into-only-some-fields 
by eggyal
INSERT INTO gfs(localidad, fecha, pp)
VALUES('some_place', '2012-08-05 02:00', 1.6)
ON DUPLICATE KEY UPDATE pp=VALUES(pp);
Re: [mySQL] insert/update ?
#195175
Author: Mateusz Bogusz
Date: Wed, 04 Jan 2017 19:59
14 lines
1320 bytes
> Wiem!
> http://stackoverflow.com/questions/12218185/mysql-replace-into-only-some-fields
> by eggyal
> INSERT INTO gfs(localidad, fecha, pp)
> VALUES('some_place', '2012-08-05 02:00', 1.6)
> ON DUPLICATE KEY UPDATE pp=VALUES(pp);

Zwyczajowo tą funkcjonalność szuka się pod hasłem "upsert" :-)

https://www.google.pl/#q=nazwa+bazy+danych+upsert

-- 
Pozdrawiam,
Mateusz Bogusz
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads