szymekq1
9.12.2020, 18:01:08
Witam, mam do zrobienia tabele
Wgrałem plik tekstowy z danymi przez WinSCP na serwer
w putty utworzylem tabele
Jednakże gdy chce wczytac dane z tabeli wyskakuje bład
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'F14/2004', '2004-02-10', '971-13-24-919', 'gotowka'),
('F14/2006', '2006-02-06',' at line 113
kod: CREATE TABLE SZ_faktury (NrFaktury CHAR(100), DataFaktury CHAR(50), NIP CHAR(20), SposobPlatnosci CHAR(50));
i tabela sie robi, ale jest pusta, gdy chce wczytac dane wpisujac komende SOURCE SZ_faktury.txt
wyskakuje powyższy błąd.
a tu fragment pliku tekstowego z którego dane chce wczytać
CREATE TABLE SZ_faktury (NrFaktury CHAR(100), DataFaktury CHAR(50), NIP CHAR(20), SposobPlatnosci CHAR(50));
INSERT INTO SZ_faktury VALUES
('F1/2003', '2003-01-01', '558-73-64-209', 'gotowka'),
('F1/2004', '2004-01-02', '474-629-76-54', 'przelew'),
('F1/2006', '2006-01-01', '145-79-24-386', 'przelew'),
('F1/2007', '2007-01-02', '917-93-55-122', 'gotowka'),
('F1/2008', '2008-01-01', '723-509-78-35', 'gotowka'),
('F10/2004', '2004-01-19', '378-92-95-517', 'gotowka'),
('F10/2006', '2006-01-31', '791-96-23-410', 'gotowka'),
('F10/2007', '2007-02-14', '591-412-99-58', 'karta'),
('F10/2008', '2008-01-15', '624-526-79-48', 'gotowka'),
('F100/2003', '2003-03-25', '704-42-92-277', 'przelew'),
('F100/2004', '2004-08-06', '304-95-25-513', 'gotowka'),
('F100/2006', '2006-12-19', '303-15-12-641', 'gotowka'),
('F100/2008', '2008-12-27', '878-54-69-780', 'przelew'),
('F101/2003', '2003-03-25', '112-417-55-14', 'gotowka'),
('F101/2004', '2004-08-18', '409-388-54-63', 'przelew'),
('F101/2006', '2006-12-21', '522-314-38-51', 'przelew'),
('F102/2003', '2003-03-25', '813-76-70-187', 'przelew'),
Prosze o pomoc....
nospor
9.12.2020, 18:04:13
pokaz kod z okolic
'F14/2004', '2004-02-10', '971-13-24-919', 'gotowka')
szymekq1
9.12.2020, 18:08:29
('F138/2004', '2004-10-15', '123-51-32-945', 'gotowka'),
('F139/2003', '2003-04-28', '152-12-86-206', 'gotowka'),
('F139/2004', '2004-10-18', '518-954-46-72', 'przelew'),
('F14/2003', '2003-01-11', '317-89-45-89', 'karta),
('F14/2004', '2004-02-10', '971-13-24-919', 'gotowka'),
('F14/2006', '2006-02-06', '334-724-76-88', 'przelew'),
('F14/2007', '2007-02-19', '907-75-48-103', 'gotowka'),
('F14/2008', '2008-01-26', '374-66-92-739', 'gotowka'),
('F140/2003', '2003-04-28', '917-93-55-122', 'gotowka'),
Usuwałem fragmenty który występowały w błędzie, A czy to możliwe że bład ten wyskakuje gdy dane się powtarzaja?
viking
9.12.2020, 18:46:13
('F14/2003', '2003-01-11', '317-89-45-89', 'karta),
czego brakuje po karta?
szymekq1
9.12.2020, 19:04:11
Usunałem tabele i zrobilem jeszcze raz z kodem CREATE TABLE SZ_faktury (NrFaktury VARCHAR(15),DataFaktury DATE,NIP CHAR(13),SposobPlatnosci VARCHAR(10));
który polecil mi kolega(u niego działa)
bład ten sam tylko dotyczy innej linijki, bo
ERROR 1050 (42S01): Table 'SZ_faktury' already exists
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'faktury (NrFaktury, DataFaktury, NIP, SposobPlatnosci)
('F1/2003', '2003-01-01'' at line 3
trueblue
9.12.2020, 19:33:51
Skoro tworzysz tabelę ręcznie, to nie jest potrzebne zapytanie CREATE TABLE w pliku.
Albo to, albo to.
szymekq1
10.12.2020, 14:00:00
Pozostałe tabele udało sie utworzyc bez problemu w ten sposob, tu ciagle jest blad...
trueblue
10.12.2020, 14:04:46
Dlatego też piszę, że niepotrzebnie w pliku używasz CREATE TABLE.
W pierwszym poście napisałeś, że tworzysz tabelę poprzez CREATE TABLE, po czym pokazałeś początkowy fragment pliku, gdzie również jest polecenie CREATE TABLE.
Jeśli tworzysz tabelę i jest utworzona, to drugi raz nie można wykonać polecenia tworzenia tej samej tabeli (bo już istnieje).
Albo nie twórz ręcznie tabeli, albo usuń wpis CREATE TABLE z pliku, który ładujesz poprzez komendę source.
Możesz też użyć: CREATE TABLE IF NOT EXISTS SZ_faktury ...
W przypadku innych tabel robisz to widocznie w inny sposób.
szymekq1
10.12.2020, 14:16:43
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''F1/2003', '2003-01-01', '558-73-64-209', 'gotowka'),
('F1/2004', '2004-01-02', ' at line 1
Czego bym nie próbował to zawsze wyskakuje taki bład po poleceniu SOURCE. Moze coś CHAR LUB VARCHAR jest nie tak, ale innym te same polecenia których ja próbuje działaja....
trueblue
10.12.2020, 14:24:19
Pokaż plik od początku do F1/2006.
szymekq1
10.12.2020, 14:27:52
SZ_faktury (NrFaktury VARCHAR(15),DataFaktury DATE,NIP CHAR(13),SposobPlatnosci VARCHAR(10));
INSERT INTO SZ_faktury VALUES
('F1/2003', '2003-01-01', '558-73-64-209', 'gotowka'),
('F1/2004', '2004-01-02', '474-629-76-54', 'przelew'),
('F1/2006', '2006-01-01', '145-79-24-386', 'przelew'),
gdy usunę z pliku linijkę z błędem to po ponownej próbie wyskakuje mi bład z inną linijką i tak w kólłko
trueblue
10.12.2020, 14:32:10
Ale przecież fragment: SZ_faktury (NrFaktury VARCHAR(15),DataFaktury DATE,NIP CHAR(13),SposobPlatnosci VARCHAR(10));
tworzy całość z CREATE TABLE. Nie możesz usunąć ot tak samego CREATE TABLE i zostawić resztę.
Plik ma zaczynać się od INSERT INTO, albo od CREATE TABLE jeśli nie będziesz tworzył tabeli ręcznie. Albo tak ja również Ci sugerowałem od CREATE TABLE IF NOT EXISTS.
Poczytaj trochę podstawy SQL, niekoniecznie MySQL.
szymekq1
10.12.2020, 14:37:46
Probowane nie działa... a jest możliwosć że inna tabela została zle wykonana która zawiera takie same dane i przez to wyskakuje bład przy próbie wczytania tej tabeli?
trueblue
10.12.2020, 14:39:37
Nie wiem jaki aktualnie błąd otrzymujesz i jak wygląda plik po zmianach.
szymekq1
10.12.2020, 14:43:57
Usunałem poprzednia tabele poleceniem DROP TABLE.
Początek pliku wygląda tak:
CREATE TABLE SZ_faktury (NrFaktury VARCHAR(15),DataFaktury DATE,NIP CHAR(13),SposobPlatnosci VARCHAR(10));
INSERT INTO SZ_faktury VALUES
('F1/2003', '2003-01-01', '558-73-64-209', 'gotowka'),
('F1/2004', '2004-01-02', '474-629-76-54', 'przelew'),
('F1/2006', '2006-01-01', '145-79-24-386', 'przelew'),
('F1/2007', '2007-01-02', '917-93-55-122', 'gotowka'),
('F1/2008', '2008-01-01', '723-509-78-35', 'gotowka'),
('F10/2004', '2004-01-19', '378-92-95-517', 'gotowka'),
('F10/2006', '2006-01-31', '791-96-23-410', 'gotowka'),
('F10/2007', '2007-02-14', '591-412-99-58', 'karta'),
('F10/2008', '2008-01-15', '624-526-79-48', 'gotowka'),
('F100/2003', '2003-03-25', '704-42-92-277', 'przelew'),
('F100/2004', '2004-08-06', '304-95-25-513', 'gotowka'),
w putty wpisuje jedynie SOURCE SZ_faktury.txt;
no i jak zwykle bład
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'F14/2004', '2004-02-10', '971-13-24-919', 'gotowka'),
('F14/2006', '2006-02-06',' at line 113
trueblue
10.12.2020, 14:52:20
Pokaż fragment z F14/2004 i dwa rekordy przed oraz po.
szymekq1
10.12.2020, 14:54:42
('F139/2004', '2004-10-18', '518-954-46-72', 'przelew'),
('F14/2003', '2003-01-11', '317-89-45-89', 'karta),
('F14/2004', '2004-02-10', '971-13-24-919', 'gotowka'),
('F14/2006', '2006-02-06', '334-724-76-88', 'przelew'),
('F14/2007', '2007-02-19', '907-75-48-103', 'gotowka'),
trueblue
10.12.2020, 15:00:37
Znów brak ' za karta.
Jak jest sens poświęcać Ci czas?
szymekq1
10.12.2020, 15:03:57
O jej... przepraszam za moje niedopatrzenie, poprawione i w koncu działa.... Dziekuje bardzo za chęć pomocy i za cierpliwość do mnie. Wszystkiego dobrego.