số MySQL không hỗ trợ CREATE DOMAIN
hoặc CREATE TYPE
như, ví dụ, PostgreSQL does.
Có thể bạn sẽ phải nhập lại tất cả các tên. Bạn có thể giảm thiểu công việc cần thiết để thực hiện việc này bằng cách sử dụng các tập lệnh sao chép & hoặc SQL.
Bạn cũng có thể sử dụng các bảng INFORMATION_SCHEMA
để lấy văn bản định nghĩa ENUM và sau đó nội suy thành câu lệnh CREATE TABLE
mới.
Bạn cũng có thể sử dụng CREATE TABLE AS
theo các cách sáng tạo để sao chép định nghĩa loại. Dưới đây là một cuộc biểu tình:
CREATE TABLE foo (f ENUM('abc', 'xyz'));
CREATE TABLE bar AS SELECT f AS b FROM foo;
SHOW CREATE TABLE bar;
Đầu ra:
CREATE TABLE `bar` (
`b` enum('abc','xyz') default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Cuối cùng, tôi đề nghị rằng nếu ENUM của bạn có nhiều giá trị trong nó (mà tôi đoán là đúng vì bạn đang tìm kiếm một giải pháp cho tránh gõ chúng), có lẽ bạn nên sử dụng bảng tra cứu thay vì kiểu dữ liệu ENUM.
Nguồn
2009-09-22 21:39:06