重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
事情的起因是这样的,在练手项目的时候,表的一个关联字段并没有建立外键关系,只是名义上的外键关系,
从网站建设到定制行业解决方案,为提供做网站、网站建设服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联将不断加快创新步伐,提供优质的建站服务。
而在修改数据的时候,考虑到安全性的问题,确保运行不会报异常的话,每次在做修改字段的时候,都需要先查
寻该字段是否存在,若不存在则需要主动添加。如以下的 userId,是并没有外键的!
如果每次都先查询再修改的话,是相当影响效率的,所以呢,mysql也帮我们准备好了解决方式,感谢mysql团队
1. ** 首先,你需要一个触发条件,也就是唯一索引啦,这是必要的!!! 譬如我想我的userId不重复,又想达到该效果,就需要把该字段设置为唯一索引,譬如:
2. 语法: duplicate key
怎么使用已经很明显了吧 :
insert into 表名(字段1,userId,字段3,....) values(值1,值,值3,....) 意思是,当userId不重复时,则会触发这个插入语句
update 字段1=值1,字段2=值2 .... 就是userId的值已经存在时,则触发这个修改语句
那么我的语句就是:
3. 最后
顺带一提,可以在myBatis的xml文件中获取当前时间哦,使用 now()
学而时记之,人笨只能多写啦,加油哦!!!.....
mysql修改数据表的语法结构一般来说通过alter语句即可。
1、增加列[add
列名]J
例:alter
table
test
add
username
char(20)
not
null
default
'';
2、删除列[drop
列名]
alter
table
test
drop
pid;
3、修改列[modife
列名]
alter
table
test
modify
gender
char(4)
not
null
default
'';
这上面的SQL语句基本没有变化,
![CDATA[SELECT LAST_INSERT_ID() AS ID ]]---》SELECT @@IDENTITY
insert into t_docrecord(id,filename,doctype,lastmodify) values
(?,?,?,?) -》
insert into t_docrecord(id,filename,doctype,lastmodify) values
(@id,@filename,@doctype,@lastmodify)
select * from t_docrecord where filename=#value# ->select * from t_docrecord where filename=@filename
下面一样的就不再改了,都改成@ID 开头,到时用SQL命名参数来处理,
mysql数据库中sql修改字段类型可以按照以下方式: 语法规则:alter table 表名 modify 字段名 新类型 例如,有张表student,有id字段是int型的,改为varchar类型 alter table student modify id varchar(20); 执行该sql语句即可。
以下是批量修改语法
1 UPDATE table_name alias
2 SET (column_name,column_name ) = (
3 SELECT (column_name, column_name)
4 FROM table_name
5 WHERE alias.column_name = alias.column_name)
6 WHERE column_name condition value;