2012-04-24 20 views
11

Tôi có một kịch bản mà tôi chạy trên nhiều cơ sở dữ liệu và chạy trên nhiều cơ sở dữ liệu Tôi chỉ cần thay đổi câu lệnh USSql "USE".Trong MySQL có một biến cho cơ sở dữ liệu hiện tại?

Tôi muốn có một câu lệnh chọn để xuất ra cơ sở dữ liệu hiện tại mà tập lệnh đang thực thi dựa trên trường.

Ví dụ:


USE my_db; 

SELECT 
    CURRENT_DB, -- this is where to insert the current executing db, i.e. "my_db" 
    id, name, blah, blah 
FROM my_table 

+1

Có gì khó khăn như vậy tìm kiếm này lên trong cuốn hướng dẫn trước khi gửi bài? –

+0

Tôi đã tìm kiếm lâu hơn mong đợi. Google & Bing đã rất kén chọn và không tìm thấy nó. Có lẽ vì tôi đã tìm kiếm một biến và không phải là một hàm db. – thames

+0

Địa điểm đầu tiên của bạn nên là hướng dẫn sử dụng, không phải là google hoặc bing. –

Trả lời

22
+0

Điều thú vị là nó không hoạt động trong SQLyog. Tôi đoán nó chỉ thêm tên cơ sở dữ liệu vào mỗi tên bảng trong truy vấn trước khi thực hiện nó. –

+1

@Shedal - Tôi sẽ nói đó là một lỗi với SQLyog sau đó, vì đây là một hàm được ghi tài liệu trực tiếp từ tài liệu MySQL. – dcp

6

Hãy thử đoạn này:

select database(); 
9

sử dụng DATABASE()

Trả về tên cơ sở dữ liệu (hiện tại) mặc định dưới dạng một chuỗi trong bộ ký tự utf8. Nếu không có cơ sở dữ liệu mặc định, DATABASE() trả về NULL. Trong một thường trình được lưu trữ, cơ sở dữ liệu mặc định là cơ sở dữ liệu mà thường trình được liên kết với, mà không nhất thiết phải giống như cơ sở dữ liệu là mặc định trong ngữ cảnh gọi.

cho Ví dụ

mysql> SELECT DATABASE(); 
Các vấn đề liên quan