• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kopiowanie wartości z jednej tabeli do drugiej

Object Storage Arubacloud
+1 głos
355 wizyt
pytanie zadane 25 sierpnia 2020 w SQL, bazy danych przez Rashi Nowicjusz (230 p.)

Cześć! Zaczęłam bawić się bazami danych i natrafiłam na pewien problem.

Otóż mam trzy tabele tabele: 

1. users, gdzie kolumnami sa id, login,haslo,email (klucz główny to id)

2. incomes_category_assigned_to_users, gdzie kolumnami jest id, user_id, name (id to klucz główny a user_id obcy)

3. incomes_category_default, gdzie kolumnami jest id oraz name (id jest kluczem głównym)

Teraz chciałabym przekopiować kolumnę name z incomes_category_default do kolumny name z incomes_category_assigned_to_users

wpisuje sobie takie zapytanie: 

Insert Into incomes_category_assigned_to_users (user_id, name) Select 1,name From incomes_category_default

To dostaje taką tabele:

Natomiast kiedy wpisze drugi raz to samo zapytanie dostaje taka tabelę:

Jak widać nie inkrementuje tego jak należy i nie bardzo wiem dlaczego. Bardzo będę wdzięczna za jakąkolwiek wskazówkę co zrobić by ten problem rozwiązać! Pozdrawiam!

 

komentarz 25 sierpnia 2020 przez Igorek Mądrala (6,290 p.)
Pomógł bym ci tylko mam pytanie:

Czy można do tego użyc jakiegoś języka? Mam na myśli np. php, czy w którym robisz tą strone lub aplikacje? Bo jeśli tak to może pomoge

A podrugie chciałbym podkreślić że w jednym zapytaniu możesz użyć tylko jedno,

czyli nie możesz w jednym zapytaniu dać dwóch, jak w tym przykładzie INSERT INTO i SELECT
komentarz 25 sierpnia 2020 przez Rashi Nowicjusz (230 p.)
Szczerze mówiąc będę robiła to w php ale najpierw chciałam zobaczyć jak to będzie wyglądało na samych tabelach.
komentarz 25 sierpnia 2020 przez Igorek Mądrala (6,290 p.)

to coś po próbuje i dam znac

komentarz 25 sierpnia 2020 przez Igorek Mądrala (6,290 p.)

@Rashi a to ma być coś takiego że wszystkie rekordy name w tabeli incomes_category_assigned_to_users mają być zaaktualizowane na rekordy name z tabeli incomes_category_default? Czyli inne rekordy w tej tablicy mają być nie tykane

I tak w ogóle ja to napisze w php ale jak będziesz chciała to może pomyśle jak to zrobić w samym sql (ale nwm czy sie da)

komentarz 25 sierpnia 2020 przez Rashi Nowicjusz (230 p.)

Ma być tak, że jeśli zarejestruje nowego użytkownika to automatycznie z tabeli incomes_category_default maja być przekopiowane wartości name do tabeli incomes_category_assigned_to_users

3 odpowiedzi

+1 głos
odpowiedź 26 sierpnia 2020 przez VBService Ekspert (253,340 p.)
edycja 26 sierpnia 2020 przez VBService
 
Najlepsza

Do wyczyszczenia tabeli użyj:

TRUNCATE TABLE `incomes_category_assigned_to_users`

This bug was reported long ago (2007) with mysql 5.0, but i am still facing same issue with mysql 5.6. I have followed this post which first gave some insight for this problem.

A tu lekarstwo na to, trochę na "rympała" (dirty code), ale działa. angel

INSERT INTO incomes_category_assigned_to_users (user_id, name) SELECT 1 AS user_id, name FROM incomes_category_default;
SET @max_id = (SELECT MAX(id) FROM incomes_category_assigned_to_users) + 1;
#SELECT @max_id;
SET @sql = CONCAT('ALTER TABLE `incomes_category_assigned_to_users` AUTO_INCREMENT = ', @max_id);
PREPARE stmt FROM @sql;
EXECUTE stmt;

Set AUTO_INCREMENT value through variable in MySql ]
MySQL prepared statement ]

1
komentarz 26 sierpnia 2020 przez Rashi Nowicjusz (230 p.)
Dziękuję to polecenie zadziałało.
0 głosów
odpowiedź 25 sierpnia 2020 przez Wiciorny Ekspert (270,190 p.)
Drugie zapytanie uderza już do uprzednio zmienionej przez ciebie tabeli poprzez inserta, a nie do tej której  wykonywałeś 1-sze zapytanie
0 głosów

Podobne pytania

0 głosów
3 odpowiedzi 3,141 wizyt
0 głosów
1 odpowiedź 553 wizyt
pytanie zadane 3 listopada 2022 w C# przez JoannS Początkujący (250 p.)
–3 głosów
2 odpowiedzi 266 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...