亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? constraint.java

?? 非常棒的java數據庫
?? JAVA
字號:
/*
 * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
 * (http://h2database.com/html/license.html).
 * Initial Developer: H2 Group
 */
package org.h2.constraint;

import java.sql.SQLException;

import org.h2.engine.DbObject;
import org.h2.engine.Session;
import org.h2.index.Index;
import org.h2.message.Message;
import org.h2.message.Trace;
import org.h2.result.Row;
import org.h2.schema.Schema;
import org.h2.schema.SchemaObjectBase;
import org.h2.table.Column;
import org.h2.table.Table;

/**
 * The base class for constraint checking.
 */
public abstract class Constraint extends SchemaObjectBase implements Comparable {

    /**
     * The constraint type name for check constraints.
     */
    public static final String CHECK = "CHECK";

    /**
     * The constraint type name for referential constraints.
     */
    public static final String REFERENTIAL = "REFERENTIAL";

    /**
     * The constraint type name for unique constraints.
     */
    public static final String UNIQUE = "UNIQUE";

    /**
     * The constraint type name for primary key constraints.
     */
    public static final String PRIMARY_KEY = "PRIMARY KEY";

    /**
     * The table for which this constraint is defined.
     */
    protected Table table;

    /**
     * The constraint type name
     *
     * @return the name
     */
    public abstract String getConstraintType();

    /**
     * Check if this row fulfils the constraint.
     * This method throws an exception if not.
     *
     * @param session the session
     * @param t the table
     * @param oldRow the old row
     * @param newRow the new row
     */
    public abstract void checkRow(Session session, Table t, Row oldRow, Row newRow) throws SQLException;

    /**
     * Check if this constraint needs the specified index.
     *
     * @param index the index
     * @return true if the index is used
     */
    public abstract boolean usesIndex(Index index);

    /**
     * This index is now the owner of the specified index.
     *
     * @param index
     */
    public abstract void setIndexOwner(Index index);

    /**
     * Check if this constraint contains the given column.
     *
     * @param col the column
     * @return true if it does
     */
    public abstract boolean containsColumn(Column col);

    /**
     * Get the SQL statement to create this constraint.
     *
     * @return the SQL statement
     */
    public abstract String  getCreateSQLWithoutIndexes();

    /**
     * Check if this constraint needs to be checked before updating the data.
     *
     * @return true if it must be checked before updating
     */
    public abstract boolean isBefore();

    /**
     * Get a short description of the constraint. This includes the constraint
     * name (if set), and the constraint expression.
     * 
     * @return the description
     */
    public abstract String getShortDescription();

    /**
     * Check the existing data. This method is called if the constraint is added
     * after data has been inserted into the table.
     * 
     * @param session the session
     */
    public abstract void checkExistingData(Session session) throws SQLException;

    public Constraint(Schema schema, int id, String name, Table table) {
        super(schema, id, name, Trace.CONSTRAINT);
        this.table = table;
        this.setTemporary(table.getTemporary());
    }

    public void checkRename() throws SQLException {
        // ok
    }

    public int getType() {
        return DbObject.CONSTRAINT;
    }

    public Table getTable() {
        return table;
    }

    public Table getRefTable() {
        return table;
    }

    public String getDropSQL() {
        return null;
    }

    private int getConstraintTypeOrder() {
        String constraintType = getConstraintType();
        if (CHECK.equals(constraintType)) {
            return 0;
        } else if (PRIMARY_KEY.equals(constraintType)) {
            return 1;
        } else if (UNIQUE.equals(constraintType)) {
            return 2;
        } else if (REFERENTIAL.equals(constraintType)) {
            return 3;
        } else {
            throw Message.getInternalError("type: " + constraintType);
        }
    }

    public int compareTo(Object other) {
        if (this == other) {
            return 0;
        }
        Constraint otherConstraint = (Constraint) other;
        int thisType = getConstraintTypeOrder();
        int otherType = otherConstraint.getConstraintTypeOrder();
        return thisType - otherType;
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
伊人色综合久久天天| 久久欧美中文字幕| 99re这里只有精品首页| 国产一区在线不卡| 日本最新不卡在线| 日本不卡一区二区三区| 婷婷久久综合九色综合绿巨人| 一区二区三区中文在线观看| 亚洲欧洲韩国日本视频| 亚洲图片激情小说| 综合分类小说区另类春色亚洲小说欧美| 国产人成亚洲第一网站在线播放| 久久女同精品一区二区| 久久久久久免费网| 亚洲日本在线a| 亚洲国产精品嫩草影院| 青娱乐精品在线视频| 激情丁香综合五月| 成人综合婷婷国产精品久久蜜臀| 成人精品免费网站| 欧美在线观看一二区| 3d动漫精品啪啪一区二区竹菊| 欧美男女性生活在线直播观看| 7777精品伊人久久久大香线蕉最新版| 欧美一区国产二区| 日本一区二区动态图| 亚洲精品免费在线播放| 亚洲成人自拍一区| 国产成人精品一区二区三区四区| 高清不卡在线观看av| 在线观看日韩毛片| 久久久噜噜噜久噜久久综合| 亚洲人成在线观看一区二区| 亚洲午夜视频在线观看| 久久狠狠亚洲综合| 一本大道久久a久久综合婷婷| 欧美日韩精品一区二区天天拍小说 | 国产伦精品一区二区三区免费迷| 国产精品 欧美精品| 色香色香欲天天天影视综合网| 337p亚洲精品色噜噜狠狠| 久久免费视频色| 亚洲国产毛片aaaaa无费看| 男女男精品视频| www.日本不卡| 亚洲精品一区在线观看| 亚洲综合色自拍一区| 国产真实乱偷精品视频免| 在线观看不卡一区| 久久久99精品久久| 日本系列欧美系列| 91免费看片在线观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲天堂免费看| 国产成人日日夜夜| 日韩精品专区在线影院重磅| 尤物视频一区二区| av中文字幕不卡| 久久精品一区八戒影视| 美女精品一区二区| 欧美精品tushy高清| 亚洲精品中文在线影院| 成人免费毛片片v| 精品国产91久久久久久久妲己| 午夜视频一区在线观看| 在线亚洲欧美专区二区| 国产精品超碰97尤物18| 国产激情91久久精品导航| 日韩三级视频在线观看| 亚洲在线一区二区三区| 91在线视频免费观看| 中文字幕一区二区三区蜜月| 国产一区二区电影| 久久蜜臀精品av| 韩国理伦片一区二区三区在线播放 | av一二三不卡影片| 欧美激情一区在线观看| 国产精品 欧美精品| 久久综合av免费| 国内不卡的二区三区中文字幕| 欧美一区二区大片| 九九视频精品免费| 国产亲近乱来精品视频| 国产福利电影一区二区三区| 日本一区二区三区视频视频| 国产盗摄女厕一区二区三区| 国产视频一区在线观看| 成人免费毛片a| 国产精品夫妻自拍| 在线观看一区二区精品视频| 亚洲已满18点击进入久久| 欧美日韩国产高清一区二区| 视频在线观看91| 日韩欧美一区二区在线视频| 黑人巨大精品欧美一区| 国产精品的网站| 欧美另类z0zxhd电影| 久久精品噜噜噜成人88aⅴ| 久久只精品国产| 99九九99九九九视频精品| 亚洲综合视频网| 亚洲精品一区二区三区精华液| 国产成人在线影院| 一区二区三区.www| 欧美一二三四区在线| 粉嫩欧美一区二区三区高清影视 | 一本色道综合亚洲| 日韩影院在线观看| 国产亚洲精品aa| 欧美亚洲综合在线| 国产一区二区久久| 曰韩精品一区二区| 日韩女优av电影| 色婷婷国产精品久久包臀| 日韩国产精品久久久久久亚洲| 2024国产精品视频| 色视频成人在线观看免| 狠狠色丁香久久婷婷综| 亚洲免费高清视频在线| 欧美成人女星排行榜| 色av成人天堂桃色av| 亚洲欧美激情在线| 国产色91在线| 3d成人h动漫网站入口| 91丨国产丨九色丨pron| 精品一区二区三区免费播放| 亚洲精品成人在线| 国产人妖乱国产精品人妖| 日韩欧美在线网站| 欧美性色综合网| av亚洲精华国产精华精| 久久99热这里只有精品| 亚洲国产一区二区在线播放| 国产欧美综合在线观看第十页| 欧美高清一级片在线| 91丨九色丨蝌蚪丨老版| 国产一区二区三区高清播放| 日日摸夜夜添夜夜添精品视频 | 国产精品色哟哟网站| 精品国产免费一区二区三区香蕉| 欧美在线999| 99久久精品久久久久久清纯| 国产乱理伦片在线观看夜一区 | 久久精品国产亚洲一区二区三区| 夜夜精品视频一区二区| 国产精品久久久久久久久果冻传媒 | 中文字幕亚洲区| 国产欧美日韩不卡免费| 久久久久综合网| 精品蜜桃在线看| 精品久久久久久久久久久久包黑料 | 另类小说图片综合网| 视频在线在亚洲| 日韩国产欧美三级| 日韩中文字幕亚洲一区二区va在线| 亚洲精品视频自拍| 一区二区免费看| 亚洲免费av高清| 一区二区久久久久久| 亚洲综合激情另类小说区| 一区二区三区久久| 午夜影院久久久| 日本不卡视频在线观看| 男女男精品视频| 国产麻豆午夜三级精品| 国产成人精品午夜视频免费| 成人综合婷婷国产精品久久蜜臀| 成人免费av资源| 色婷婷综合五月| 欧美夫妻性生活| 欧美电视剧免费观看| 久久久高清一区二区三区| 亚洲国产精品成人久久综合一区| 国产精品久久久久久久久免费桃花| 亚洲日韩欧美一区二区在线| 亚洲一区二区三区中文字幕在线| 亚洲成人免费看| 韩国中文字幕2020精品| 不卡视频一二三四| 欧美日韩综合一区| 欧美tk—视频vk| 亚洲婷婷国产精品电影人久久| 亚洲动漫第一页| 国产高清不卡一区二区| 色综合久久中文综合久久97| 91麻豆精品国产| 欧美国产日韩a欧美在线观看| 亚洲美女淫视频| 久久国产剧场电影| 99国产精品一区| 日韩一级欧美一级| 日韩美女视频一区二区| 日韩国产高清在线| 99久久久国产精品| 日韩午夜在线观看| 一个色综合网站| 成人一区二区三区视频在线观看 | 6080日韩午夜伦伦午夜伦| 国产日产欧美精品一区二区三区| 一个色妞综合视频在线观看|