2009-03-24 27 views

Trả lời

31

Quy tắc đặt tên các đối tượng, bao gồm cả các bảng trong MySql:

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

định danh có thể bắt đầu bằng một chữ số nhưng trừ khi trích dẫn có thể không bao gồm chỉ chữ số.

Vì vậy, đây sẽ là không hợp lệ:

SELECT * FROM 12345; 

Nhưng sau đây sẽ có giá trị:

SELECT * FROM `12345`; 

Hoặc nếu chạy trong chế độ ANSI sau đây sẽ làm việc:

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

Phần liên quan từ tài liệu đó có lẽ là "Số nhận dạng có thể bắt đầu bằng chữ số." –

12

như Karim và Steve Weet đã chỉ ra, có, bạn có thể, nhưng bạn sẽ phải trích họ như thế này:

SELECT * FROM `3516` 

thể tôi khuyên bạn nên suy nghĩ lại có lẽ kịch bản của bạn mặc dù? Thêm tiền tố: bảng có tên "t3516" sẽ không gây nhầm lẫn như chỉ "3516".

Ngoài ra, bạn có thể chuyển đổi số để chỉ sử dụng các chữ chứ không phải là bất kỳ số:

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

Câu trả lời là có, như được đưa ra bởi karim79, miễn là bạn chăm sóc để trích dẫn các tên bảng. Tất nhiên, bạn có thể sử dụng một tiền tố với một số, ví dụ. mytable1, mytable2, ...; mà sẽ làm việc mà không có trích dẫn.

Điều đó nói rằng, bạn thực sự nên suy nghĩ về lý do tại sao bạn muốn tạo nhiều bảng. Cách thức làm việc được chấp nhận là có mọi thứ thuộc về nhau trong một cái bàn. Vì vậy, thay vì có table1, table2 ... bạn sẽ sử dụng một bảng, và lưu trữ số trong một cột.

Đó chỉ là cách tự nhiên. Cách làm việc của bạn có thể dễ dàng dẫn đến nhiều vấn đề (thay đổi lược đồ DB là vấn đề cho các bản sao lưu, làm cho các công cụ khác khó làm việc với DB vì nhiều bảng, các thay đổi lược đồ phải được thực hiện cho tất cả các bảng). Tự động thay đổi giản đồ của bạn trong thời gian chạy thường không phải là một ý tưởng hay.

+0

Không chắc chắn ý của bạn là gì. Câu trả lời chắc chắn là có miễn là bạn định danh thoát nó mỗi lần. Ngoài ra, tôi đã đi qua nhiều trường hợp, nơi tên bảng là số nguyên trong cơ sở dữ liệu được tự động tạo ra. – techdude

+0

@techdude: Tôi chưa bao giờ gặp một cơ sở dữ liệu với "bảng được đánh số". Bạn đã thấy chúng ở đâu? Và tại sao họ lại sử dụng? Tôi tò mò ... – sleske

+0

Vị trí cụ thể không quan trọng (hoặc công khai). Điều quan trọng là bạn có thể sử dụng số cho tên bảng. Để tiếp tục giải quyết câu hỏi của người hỏi, bạn có thể sử dụng bảng tổng thể tương ứng với bảng mới mà bạn đã tạo (và có thể có thông tin khác về bảng) trong khi cũng có cột số nguyên tăng tự động số nguyên cho bảng sẽ được tạo. Không cần thiết trong trường hợp này để làm cho nó thành một chuỗi, vì các tên bảng nguyên (và các tên cột cho vấn đề đó) được hỗ trợ bởi tất cả các DBMS chính. – techdude

0

tôi nghĩ rằng nó không nên được ưa thích ở tất cả các coz nó sẽ khó hiểu hơn và khó nhớ. tên bảng phải phù hợp với dữ liệu lưu trữ. Đó là một thói quen tốt hơn.

0

sử dụng dấu gạch chéo (`) để báo tên bảng nếu nó chỉ là số. nó dưới nút esc trên bàn phím

Các vấn đề liên quan