拆表:
create table bak_task_instances select * from task_instances where timestamp<1291795988; //2011-12-08
delete from task_instances where timestamp<1291795988;
//2011-01-01
表复制:
1.复制表结构及数据到新表
CREATE TABLE 新表 SELECT * from 旧表
2.只复制表结构到新表
CREATE TABLE 新表 SELECT * from 旧表 WHERE 1=2
或CREATE TABLE 新表 LIKE 旧表
3.复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * from 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... from 旧表
5.可以将表1结构复制到表2
SELECT * INTO 表2 from 表1 WHERE 1=2
6.可以将表1内容全部复制到表2
用SELECT * INTO 表2 from 表1
对于方法一
create table newtable1 select name,email,tel,address from dept1;
该方法是将一张表的数据复制到一张新表的方法;
现在问题是newtable1新表中如何建立一个自动增长的列,在复制数据的同时,该自动增长列也会自动增长。
CREATE TABLE test (id int not null auto_increment) SELECT * from dept1;
向表中插入新字段
alter table modules add column start_command varchar(255);
删除表中的一个字段
alter table modules drop column role;
单独设置主键的方法:
alter table tasks add constraint pk primary key(id);
批量替换一批记录中某个字段内容中的字符:
update tasks set name=replace(name,'stat','stat-old') where id>139 and id<156\G
//update '表名' set 要修改字段名 = replace (要修改字段名,'被替换的特定字符','替换成的字符')
授权
读、更新、删除权限:
GRANT SELECT,UPDATE,DELETE ON database.* TO user1@'hostname' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
所有权限:
GRANT ALL PRIVILEGES ON *.* TO user2@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
flush privileges;
阅读(811) | 评论(0) | 转发(0) |