Skip to content

Composite Unique

Use composite unique constraints to enforce uniqueness across multiple columns.

zig
const std = @import("std");
const sqlite = @import("sqlite");

pub fn main() !void {
    var db = try sqlite.open(std.heap.page_allocator, "valid_27.db");
    defer db.close();
    var result = try db.exec("CREATE TABLE IF NOT EXISTS combo (a INTEGER, b INTEGER, UNIQUE(a, b));");
    result.deinit();
    result = try db.exec("INSERT INTO combo VALUES (1, 1);");
    result.deinit();
    const dup = db.exec("INSERT INTO combo VALUES (1, 1);") catch null;
    if (dup) |v| {
        var owned = v;
        owned.deinit();
        return error.DuplicateWasAccepted;
    }
}

TIP

Run with: zig build run-27-composite-unique

Released under the MIT License.