有没有办法将列的结构从已填充的表复制到空的新表?我只是询问复制结构而不复制数据
例子:
我们有一张桌子
CREATE TABLE `animals` (
`animal` varchar(11) NOT NULL,
`food` varchar(11) NOT NULL,
PRIMARY KEY (`animal`)
) ENGINE=InnoDB
INSERT INTO `animals` (`animal`, `food`) VALUES
('cat', 'chips'),
('dog', 'bones'),
('shark', 'ppl');
和一个新表称为predators
我只想创建一列,但数据类型与动物的列类型相同。
有没有办法将 SHOW COLUMNS/FIELDS 与 CREATE TABLE 结合起来,或者使用具有某种类型(如 VARCHAR(17))的列创建表,然后将其更改为与animal
column?
我知道这是一个简单的问题,但我没有运气找到答案
如果您想复制数据:
INSERT INTO newTable (col1, col2)
SELECT col1, col2 FROM otherTable
如果你想复制表结构:
Use LIKE
基于另一个表的定义创建一个空表,包括原始表中定义的任何列属性和索引:
CREATE TABLE new_tbl LIKE orig_tbl;
副本是使用与原始表相同版本的表存储格式创建的。原始表需要 SELECT 权限。
文档 http://dev.mysql.com/doc/refman/5.1/en/create-table.html
如果要复制结构和数据:
CREATE TABLE animals2 AS
SELECT *
FROM animals ;
如果您想复制没有数据的结构(但不是所有列):
CREATE TABLE animals2 AS
SELECT animal -- only the columns you want
FROM animals
WHERE FALSE; -- and no data
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)