MySQL修改表结构方法的详细解决方案
本文介绍了mysql修改表的结构方法,供大家参考:MySQL修改表结构并使用表语句。接下来,我们将详细介绍MySQL修改表结构的句子编写方法,希望能帮助您学习MySQL来修改表结构。
改变{忽略}表tbl_name alter_spec {,} alter_spec…
alter_specification:
加{ } {第一列create_definition后column_name | }
或添加指数{ index_name }(index_col_name,…)
或添加主键(index_col_name,…)
或添加独特的{ index_name }(index_col_name,…)
或改变{柱} {设置默认文字滴col_name默认} |
或改变{柱} old_col_name create_definition
或修改{柱} create_definition
或滴{柱} col_name
或删除主键
或删除索引index_name
或重命名{ } new_tbl_name
或table_options
修改表允许修改现有表的结构。例如,可以添加或删除列、创建或删除索引、更改现有列的类型、或重新命名列或表。还可以更改表的注释和表的类型。
如果你使用ALTER TABLE来修改列的描述,但描述tbl_name表明你的列没有被修改,这可能是由于一个MySQL中的隐含列了7.7.1的原因,忽略你的修改。例如,如果你试图改变一个VARCHAR CHAR,MySQL仍然如果表包含其他较长使用VARCHAR列。
修改表的作品通过对原始表的临时副本,对副本进行修改,然后删除原来的表和一个新的改名。这让所有的更改都会自动转向新的表没有任何失败的修改。在修改表被执行,原表可以用其他客户阅读。更新和写表推迟到新的桌子已经准备好了。
为了使用修改表,您需要在表中选择、插入、删除、更新、创建和删除的权限。
不管是MySQL的ANSI SQL92的延伸,如果有在新表的唯一键的重复,它控制如何修改表的作品。如果忽略不指定,拷贝是放弃,回到原来的形式。如果不指定,那么唯一键重复的行,只第一行使用;其余的删除。
你可以发布多添加,修改,下降,和在一个单一的ALTER TABLE语句更改条款。这是MySQL的ANSI SQL92的延伸,以及SQL92只允许一个条款在每个ALTER TABLE语句。
改变col_name,降col_name,和索引是ANSI SQL92扩展MySQL。
修改是Oracle修改表的一个扩展。
可选的词,列,是一个纯粹的噪音,可以省略。
如果你使用ALTER TABLE tbl_name重命名为new_name没有任何其他选择,MySQL只重命名表tbl_name.there对应的文件不需要创建一个临时表。
的create_definition条款使用相同的添加和更改语法创建表。注意语法包括列名,不仅列类型。
你可以用改变old_col_name create_definition条款重新命名列。为此,指定当前类型的旧的和新的列名和列。例如,重命名一个整数列,从A到B,你可以这样做:
复制代码代码如下:mysql *更改表T1改变一个B整数;
如果要更改列的类型而不是名称,即使它们是相同的,更改语法仍然需要2个列名:
复制代码代码如下:MySQL >修改表T1改变B bigint不空;
然而,在mysql3.22.16a,您也可以使用修改变更而改名列类型:
复制代码代码如下:MySQL >修改表T1修改B bigint不空;
如果你使用更改或修改缩短列,索引存在于该列的部分(例如,如果你有一个VARCHAR列的前10个字符的索引),你不能短于字符索引的数量使列。
当使用更改或修改更改列类型时,MySQL尝试尽可能地将数据转换为新类型。
在mysql3.22或以后,你可以使用第一或添加…col_name在表的某一行的特定位置添加列后。默认的是添加到最后一列。
更改列指定列的新默认值或删除旧的默认值。如果旧的默认值被删除,列为空,则新的默认值为NULL。如果该列不能为空,MySQL将给出一个默认值。默认值赋值在7.7个创建表语法中描述。
删除索引删除索引。这是ANSI SQL92 MySQL扩展。
如果从一个表中删除列,则该列也会从它们所属的任何索引中删除。如果丢弃所有组成索引的列,则索引也将被丢弃。
删除主键放弃主要索引。如果这样的索引不存在,它丢弃表中的第一个唯一索引。(如果主键没有明确指定,MySQL标记的第一个唯一键是主键)。
与C API函数mysql_info(),你可以找出许多记录复制,和(当使用忽略)的独特的核心价值是删除重复的次数。
外键、查阅和引用条款并没有真正起作用。它们的语法只提供兼容性,从而更容易地从其他SQL服务器移植代码,并运行通过引用创建表的应用程序。请参见5.4 MySQL的缺失函数。
下面是一个例子,它显示了一些表的用法:
复制代码代码如下:mysql >创建表t1(整数,B CHAR(10));
名字列表,从T1到T2:
复制代码代码如下;
为了改变列,改变从整数字段不为空(名称相同),改变柱B,改变从char(10)为char(20),并将其更名为从B到C:
复制代码如下:MySQL >修改表T2修改字段不为空,B和C的变化(20);
添加一个名为d的新的时间戳列:
复制代码代码如下;
在d列上添加一个索引,并使列成为主键:
复制代码代码如下:MySQL >修改表T2添加索引(D),添加主键(a);
删除列C:
复制代码代码如下;
添加一个新的auto_increment整数列为C:
复制代码如下:MySQL >修改表T2加C不空auto_increment int unsigned,加;
注意,我们已经因为auto_increment列必须被索引,并宣布C是无效的,因为列索引不能为空。
When you add a AUTO_INCREMENT column, the column values are automatically filled with sequence numbers.
希望本文能对大家设计mysql数据库程序有所帮助。