2009-03-24 11 views

Odpowiedz

31

Zasady nazywania obiektów, w tym tabele w MySQL:

http://dev.mysql.com/doc/refman/5.1/en/identifiers.html

Identyfikatory mogą zaczynać się cyfrą ale chyba że cytowany nie może składać się wyłącznie z cyfr.

Więc byłoby to nieprawidłowy:

SELECT * FROM 12345; 

Ale dodaje byłby ważny:

SELECT * FROM `12345`; 

Lub jeśli działa w trybie ANSI następujących będzie działać:

SET @@session.sql_mode=ANSI_QUOTES; 
SELECT * FROM "12345"; 
+0

Odpowiednia część tego dokumentu to prawdopodobnie ta "Identyfikatory mogą zaczynać się od cyfry, ale jeśli cytowane nie mogą składać się wyłącznie z cyfr." –

12

jak zauważyli Karim i Steve Weet, Tak, można, ale musisz cytować je tak:

SELECT * FROM `3516` 

Może Proponuję przemyśleć swój skrypt może jednak? Dodaj prefiks: tabela o nazwie "t3516" nie będzie tak myląca jak "3516".

Ponadto, można konwertować liczby po prostu użyć litery zamiast jakichkolwiek liczb:

table 0 - t_a 
table 1 - t_b 
table 2 - t_c 
table 25 - t_z 
table 26 - t_aa 
table 27 - t_ab 
... etc 
0

Odpowiedź brzmi tak, jak podane przez karim79, tak długo, jak dbać przytoczyć nazwy tabel. Można oczywiście użyć prefiksu z numerem, np. mytable1, mytable2, ...; to działałoby bez cytowania.

Powiedziawszy, powinieneś pomyśleć o tym, dlaczego chcesz stworzyć tak wiele tabel. Przyjmowanym sposobem robienia rzeczy jest posiadanie wszystkiego, co należy do siebie w jednym stole. Więc zamiast tabeli 1, tabeli 2 ... użyjesz jednej tabeli i zapiszesz numer w kolumnie.

To jest po prostu naturalny sposób. Twój sposób robienia rzeczy może łatwo prowadzić do wielu problemów (zmiana schematu bazy danych jest problematyczna dla tworzenia kopii zapasowych, utrudnia innym narzędziom pracę z bazą danych z powodu wielu tabel, zmiany schematu muszą być wykonane dla wszystkich tabel). Dynamiczna zmiana schematu w czasie wykonywania zazwyczaj nie jest dobrym pomysłem.

+0

Nie jesteś pewien co masz na myśli. Odpowiedź jest zdecydowanie twierdząca tak długo, jak długo identyfikujesz go za każdym razem. Ponadto natrafiłem na wiele przypadków, w których nazwy tabel są liczbami całkowitymi w bazach danych generowanych automatycznie. – techdude

+0

@techdude: Nigdy nie natknąć się na danych z „ponumerowanych stolikach”. Gdzie ich widziałeś? I dlaczego zostały użyte? Jestem ciekaw ... – sleske

+0

Specyficzna lokalizacja nie jest ważna (lub publiczny). Kluczem jest to, że możesz używać liczb do nazw tabel. Aby dodatkowo zająć pytanie Pytający za jedno z możliwych zastosowań jest to, że masz tabelę głównego, gdzie każdy wiersz odpowiada nowej utworzonej tabeli (i może mieć inne informacje o tabeli), a także mając kolumnę całkowitą automatycznego przyrostu, który daje liczba całkowita dla tabeli, która zostanie utworzona. Nie ma potrzeby w tym przypadku, aby ciąg, ponieważ nazwy tabel Integer (i nazwy kolumn dla tej sprawy) są obsługiwane przez wszystkich głównych DBMS. – techdude

0

Uważam, że nie powinno być preferowane we wszystkich krajach, będzie bardziej mylące i trudne do zapamiętania. nazwa tabeli powinna być odpowiednia dla przechowywanych danych. To lepszy nawyk.

0

użyj klawisza powrotu (`), aby zacytować nazwę tabeli, jeśli są to wyłącznie liczby. jest poniżej klawisza esc na klawiaturze

Powiązane problemy