netbeans 如何在sql中检查重复数据

crcmnpdw  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(177)
public void AbsenKeluar(){
    loadData();
    if(Name.getText().equals("")){
        JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong");
    }else{
        try{
            Statement stat=(Statement) db_koneksi.getConnect().createStatement();
            String sql="UPDATE data_absensi SET jadwal_keluar = CURRENT_TIME WHERE nama LIKE '%"+nama+"%' AND date = CURRENT_DATE";
            PreparedStatement p =(PreparedStatement) db_koneksi.getConnect().prepareStatement(sql);
            p.executeUpdate();
            getData();
            JOptionPane.showMessageDialog(null, "berhasil absen");
        }catch(SQLException err){
            JOptionPane.showMessageDialog(null, err.getMessage());
        }
    }
}

我有一个功能要退出,我不知道如何检查是否有名字在日期....

mfuanj7w

mfuanj7w1#

如果“双重数据”是指重复数据,则可以在创建脚本时将列设置为唯一。
例如,下面的语句创建一个包含ID、Name和Age列的表,其中ID必须是唯一的,不能为空。

CREATE TABLE Persons (
    ID int NOT NULL UNIQUE,
    Name varchar(255) NOT NULL,
    Age int
);
0mkxixxg

0mkxixxg2#

从我的Angular 看,这里的教程很简单,你需要先连接数据库,然后查询结果集,然后再比较你想要的值(名称)。可以参考其他教程作为例子。你不会太在意日期,只有当名称已经存在于数据库中时,它才会检查是否存在。

h22fl7wq

h22fl7wq3#

实际上,我会尝试的一个简单方法是:
对具有名称和特定日期的数据库执行SELECT查询,这将是在更新数据库值之前执行的额外查询。
就像这样:

"SELECT * FROM data_absensi WHERE nama LIKE '%"+nama+"%' AND date = CURRENT_DATE";

然后检查结果,如果返回的是空的(没有找到记录名称),则可以确定数据库中还没有该特定日期的名称,因此可以改为执行INSERT查询,否则如果找到了记录(存在),则可以执行UPDATE查询。
请记住,如果检索所有列,刚才执行的简单SELECT查询也会返回该name记录的id,因此可以使用该id字段作为PK来更新数据。

相关问题