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

wwweeerrr 2004-04-29 04:21:56
我现在有一张表,里面有100万条记录,我现在要做的事是,在Servlet向里面写记录(一天估计会有几千条),但是每条记录的ID号是唯一的,我是不是每插一条记录,都要遍历这100万条记录,我觉得这样做行不通,高手指点一下?
...全文
86 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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() ;
}
}

56,937

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧