在Oracle中,如果我需要声明与另一列相同类型的东西,我可以简单地使用%type
:
Create table foo(
copiedType OTHER_TABLE.COLUMN_NAME%TYPE
/* yada yada yada... */
在MySQL中有等效的运算符吗?
在Oracle中,如果我需要声明与另一列相同类型的东西,我可以简单地使用%type
:
Create table foo(
copiedType OTHER_TABLE.COLUMN_NAME%TYPE
/* yada yada yada... */
事实证明,简短的回答是“不行”。虽然如果您愿意创建一个存储函数(或使用另一种语言)并通过自己的定制解析引擎来创建表格,它是可以伪造的,但这样做根本不值得。C'est sera...
除非我漏掉了什么,否则在MySQL中替代Oracle的%type
唯一的选择是以下内容:
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name' AND COLUMN_NAME = 'col_name';
CREATE TABLE
语句中使用它。 - Mchl