讨论:向有100万条记录的表里面插一条记录时要求唯一?????

wwweeerrr 2004-04-29 04:21:56
我现在有一张表,里面有100万条记录,我现在要做的事是,在Servlet向里面写记录(一天估计会有几千条),但是每条记录的ID号是唯一的,我是不是每插一条记录,都要遍历这100万条记录,我觉得这样做行不通,高手指点一下?
...全文
25 4 点赞 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wwweeerrr 2004-04-30
我这个表的主键就是手机号,要求手机号唯一
  • 打赏
  • 举报
回复
sunthing 2004-04-30
用主键啊 !
用自增长的

或另建个表,存最大值,插之前查最大值,每次插完修改这个表使加1。

学什么java 啊 ?
  • 打赏
  • 举报
回复
loveflea 2004-04-29
用IGNORE就不会插入重复的东东了!

insert IGNORE into ta ...
  • 打赏
  • 举报
回复
wwweeerrr 2004-04-29
当在程序中插一条时,如果我不遍历,就直接插,如果有相同的记录,程序肯定会抛异常,我怎么做让程序把异常抛出去之后,继续执行下面的代码呢?import java.sql.Connection;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.ResultSet;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import java.sql.PreparedStatement;
import javax.naming.NamingException;
import java.sql.DriverManager;

public class DBTest {
public void insertDB()throws Exception{
try{
Connection con = null;
ResultSet rs = null;
PreparedStatement pstm = null;
String user = "root";
String password = "";
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mwzx");
//for(int i =101 ;i<100000;i++){
PreparedStatement ps = con.prepareStatement(
"insert into zxl values(?,?)");
ps.setInt(1, 137919);
ps.setInt(2, 13799);
int a = ps.executeUpdate();
//}
}
catch (Exception cne) {
System.out.println("Insert into the same value");
System.out.println(cne.getMessage());
cne.printStackTrace();
throw cne;
}
}

public static void main(String[] args) throws Exception{
DBTest db = new DBTest();
db.insertDB() ;
}
}

  • 打赏
  • 举报
回复
相关推荐
发帖
MySQL
加入

5.5w+

社区成员

MySQL相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-04-29 04:21
社区公告
暂无公告