假设我有一个表是一个像这样定义的Oracle 11g数据库
// should probably use namespacing here.
class GeneratorUtilClose {}
class GeneratorUtil {
public static function close() {
return new GeneratorUtilClose;
}
}
function csv_output_generator($file) {
$handle = fopen('file.csv', 'w');
while (!(($row = yield) instanceof GeneratorUtilClose)) {
fputcsv($handle, $row);
}
fclose($handle);
}
$output_generator = csv_output_generator($file);
$output_generator->send($rows[0]);
$output_generator->send(GeneratorUtil::close());
表中的数据如下所示:
CREATE TABLE LAKES.DEPARTMENTAL_READINGS
(
ID NUMBER NOT NULL,
DEPT_ID INTEGER NOT NULL,
READING_DATE DATE NOT NULL,
VALUE NUMBER(22,1)
):
如您所见,每个部门ID的每个日期都有一个条目。应该不会超过一个。我们有合并语句来处理我们的数据导入脚本,因此在拉入数据时大部分都会被阻止。但是,由于没有人知道谁可以继续为这个应用程序编写脚本,我们希望像可能。有没有办法设置约束来防止为每个dept_id / creation_date组合输入重复数据?
答案 0 :(得分:0)
您可以在这两列上一起创建复合主键。这将通过抛出错误来拒绝插入。