我是新人,请问一下 select * from table_name where 1=2 for update; 中的 1=2 代表什么
1=2 代表什么 代表false 这样就不会锁住记录了。
哦,那既然他是false,那这样写完之后,我还能把数据加进去吗
你不想锁表,教你一个笨办法,,,create table TABLE_B AS SELECT *FROM TABLE_A WHERE 1=2 先创建一张表,然后对创造的TABLE_B进行for update,数据加完后,提交,再把 TABLE_B表的数据insert into 到TABLE_A中。这样锁表TABLE_A的时间就短了。
select * from table_name for update; --这样会把这个表里的所有记录查出来锁住,影响别人更新、删除操作。 select * from table_name where 列名='1' for update; --这个会把这个表里的所有列名='1'的记录查出来锁住,影响别人更新、删除操作。 --同时,你只是insert 并不会用到这些记录,因此你锁住记录就是不应该的, ----所以 where 1=2 就是起到这个作用,至于添加么,肯定是不影响的了,你试试不就知道了。
粘贴都是用数据量少的excel,用where 1=2 就行了。不过就是要先校验数据呢。
我也是新手,推荐最近学的一个笨方法,见笑了~ 建立一个 .sql文件 文件内容是要执行的插入语句: insert into A(...)values(); ....(复制粘贴) insert into A(...)values();然后在command window 下 执行:@(文件所在位置)\(文件名).sql呵呵 就这些,笨方法
select * from table_name where 1=2 for update 执行然后点那把锁,然后点击数据表格成全选状态,然后再把EXCEL里面的数据复制进去,然后再上锁,然后在F10
这样不会锁住别人的记录,然后你再往里面站数据呗。
这样不会锁住别人的记录,然后你再往里面站数据呗。
你不是复制粘贴么。
for update 会产生锁的 你查询多少条记录 就锁多少行
查询多表 就锁多表
select * from table_name where 1=2 for update;
中的 1=2 代表什么
这样就不会锁住记录了。
先创建一张表,然后对创造的TABLE_B进行for update,数据加完后,提交,再把 TABLE_B表的数据insert into 到TABLE_A中。这样锁表TABLE_A的时间就短了。
select * from table_name for update;
--这样会把这个表里的所有记录查出来锁住,影响别人更新、删除操作。
select * from table_name where 列名='1' for update;
--这个会把这个表里的所有列名='1'的记录查出来锁住,影响别人更新、删除操作。
--同时,你只是insert 并不会用到这些记录,因此你锁住记录就是不应该的,
----所以 where 1=2 就是起到这个作用,至于添加么,肯定是不影响的了,你试试不就知道了。
建立一个 .sql文件
文件内容是要执行的插入语句:
insert into A(...)values();
....(复制粘贴)
insert into A(...)values();然后在command window 下 执行:@(文件所在位置)\(文件名).sql呵呵 就这些,笨方法
执行然后点那把锁,然后点击数据表格成全选状态,然后再把EXCEL里面的数据复制进去,然后再上锁,然后在F10