![]() |
![]() ![]() |
![]() |
--anonim-- |
![]()
Post
#1
|
Goście ![]() |
Witam, jak zrobić, aby do bazy nie dodawało się drugi raz np. takie samo imię i nazwisko? Próbowałem to zrobić w taki sposób, ale nie działa:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, to mylisz składnię INSERT i UPDATE.
Po drugie, w SELECT nie rozdziela się warunków przecinkiem tylko operatorami logicznymi np. AND. Więc kod powinien przynajmniej tak wyglądąć:
Ten post edytował Kużdo 2.05.2012, 13:45:45 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Jeśli nie chcesz dodawać drugi raz tego samego użytkownika do bazy ,musisz najpierw sprawdzić jego występowanie w bazie danych.Proponowałbym zainteresować się poleceniem EXISTS w MySQL.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Lub założeniem klucza UNIQUE na pola imie ,nazwisko
-------------------- Nie udzielam pomocy poprzez PW
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Cytat Lub założeniem klucza UNIQUE na pola imie ,nazwisko Ale czy to coś zmieni?Czy nie wysypie błędem podczas próby dodania tego samego użytkownika?Na pewno kwerenda zwróci false ,ale czy dodatkowo nie wysypie jakimś wyjątkiem? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, to mylisz składnię INSERT i UPDATE. Mylisz się. Taka składnia zapytania INSERT również jest dozwolona i prawidłowa, sam sprawdź.Jeśli nie chcesz dodawać drugi raz tego samego użytkownika do bazy ,musisz najpierw sprawdzić jego występowanie w bazie danych.Proponowałbym zainteresować się poleceniem EXISTS w MySQL. W MySQL EXISTS używamy raczej do czegoś innego i tylko z podzapytaniami lub poleceniami DDL (jak CREATE DATABASE, CREATE TABLE, itp.). W tak banalnym przypadku wystarczy zwykły SELECT zaproponowany przez Kużdo. Nie ma tutaj potrzeby dodatkowo obciążać bazy danych.Ale czy to coś zmieni?Czy nie wysypie błędem podczas próby dodania tego samego użytkownika?Na pewno kwerenda zwróci false ,ale czy dodatkowo nie wysypie jakimś wyjątkiem? Tutaj masz rację, zapytanie się nie wykona i zostanie zwrócony odpowiedni komunikat błędu. Klucz UNIQUE to raczej "wsparcie" dla bazy danych, a nie aplikacji, która z tej bazy danych korzysta.Pomijając to wszystko. W powiecie, w którym mieszkam mieszkają również co najmniej cztery osoby, które noszą takie samo imię i takie samo nazwisko, jak ja. Imię i nazwisko wbrew pozorom wcale nie muszą być czymś unikalnym. Ten post edytował mortus 2.05.2012, 17:50:48 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mylisz się. Taka składnia zapytania INSERT również jest dozwolona i prawidłowa, sam sprawdź. Faktycznie. Całe życie używałem pierwszego sposobu, a tego drugiego do tej pory nie znałem... Aż wstyd. Dzięki za info. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 08:03 |