Mam na myśli program, który dynamicznie tworzy nowe tabele w miarę potrzeby. Czy mogę mieć tabele o samych liczbach w MySQL?Czy możesz używać liczb jako nazw tabel w MySQL?
Odpowiedz
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";
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
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.
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
@techdude: Nigdy nie natknąć się na danych z „ponumerowanych stolikach”. Gdzie ich widziałeś? I dlaczego zostały użyte? Jestem ciekaw ... – sleske
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
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.
użyj klawisza powrotu (`), aby zacytować nazwę tabeli, jeśli są to wyłącznie liczby. jest poniżej klawisza esc na klawiaturze
- 1. Czy mogę używać Code First Migration bez zrewolucjonizowanych nazw tabel?
- 2. Jak używać dwóch liczb jako klucza mapy
- 3. Czy możesz używać AngularJS z Parse.com?
- 4. Czy możesz przekazać "typ" jako argument?
- 5. Czy możesz oznaczyć testy XUnit jako jawne?
- 6. Czy możesz ocalić mój negatywny lookbehind przykład do zatwierdzania liczb?
- 7. Czy można ponownie używać nazw zmiennych przy użyciu przestrzeni nazw?
- 8. Łączenie dwóch tabel w mysql
- 9. Tworzenie "tabeli liczb" w mysql
- 10. Czy możesz ponownie użyć zestawu wyników mysql w PHP?
- 11. Czy możesz duplikować wiersz bez znajomości schematu w MySQL?
- 12. Czy możesz używać oczekujących zamiarów w lokalnych transmisjach?
- 13. Czy możesz używać Zdalnej konsoli VMWare w Google Chrome?
- 14. Liczba mysql (*) z wielu tabel
- 15. przechowywanie liczb jako varchar
- 16. Django - Czy możesz użyć właściwości jako pola w funkcji agregacji?
- 17. Czy możesz zadeklarować atrybut jako prywatny w klasie abstrakcji?
- 18. Czy możesz używać Ant do budowania/modyfikowania plików XML?
- 19. Czy można używać AWS jako hosta?
- 20. Czy można używać nazw klas CamelCase w modelach Magento?
- 21. Czytanie liczb jako ciągi
- 22. Czy dobrze jest używać tabel w HTML 5?
- 23. Zwiększenie szybkości tworzenia tabel MySQL w Django?
- 24. Przechowywanie bardzo dużych liczb całkowitych w MySQL
- 25. Postgres kwerendy do listy wszystkich nazw tabel
- 26. Ucinanie wielu tabel w jednym poleceniu MySQL
- 27. Tworzenie tabel MySQL z obsługą
- 28. MySQL - Dołącz do 2 tabel
- 29. Czy możesz używać antyfiksu do tworzenia dokumentów XML?
- 30. Czy możesz używać obiektów Future/FutureTask ze Spring TaskExecutors?
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." –