Tak w SQLTools jest tak jak napisałeś zgodnie z moimi oczekiwaniami, natomiast w Android studio w ogóle nie dodaje ani za pierwszym razem ani za drugim razem
tego trochę nie rozumiem
sprawdź dla
turbo_unikalny_numer_1_na_potrzeby_sql_tools != turbo_unikalny_numer_1_na_potrzeby_android_studio != jakikolwiek istniejący w bazie
No właśnie to jest kluczowe, bo najprawdopodobniej popełniasz błąd logiczny w rozumieniu samego inserta.
Ogólnie od strony bazodanowej mówi: dodaj rekord, jeśli w bazie nie istnieje rekord z numerem telefonu = jakiśtam.
Zrób coś takiego.
Kopiuj
select max(phone) from clients;
Załóżmy, że dostaniesz 690223225. To znaczy, że wszystkie numery telefonu są <= 690223225.
Teraz robisz testy, w sqltools dla numeru telefonu 691000000 (bo na pewno takiego w bazie nie ma), w android studio dla 692000000 (bo na pewno takiego w bazie nie ma).
Czyli, w sqltools wykonaj
Kopiuj
insert into CLIENT (UPDSTMP, STATUS, GID, PHONE, CLNTNAM1)
SELECT SYSDATE, 'A', '103', 691000000,'PIOTER' from dual
where not exists(select * from CLIENT where PHONE = 691000000 );
Po pierwszym wykonaniu powinien dodać się rekord dla Piotera.
Po drugim wykonaniu nie powinno się nic dodać, bo numer telefonu 691000000 jest już zajęty.
Teraz w android studio sprawdzasz:
Kopiuj
insert into CLIENT (UPDSTMP, STATUS, GID, PHONE, CLNTNAM1)
SELECT SYSDATE, 'A', '103', 692000000,'PIOTER' from dual
where not exists(select * from CLIENT where PHONE =692000000 );
Po pierwszym wykonaniu powinien dodać się rekord dla Piotera.
Po drugim wykonaniu nie powinno się nic dodać, bo numer telefonu 692000000 jest już zajęty.