【问题标题】:sql netezza check before insertingsql netezza 插入前检查
【发布时间】:2016-11-28 12:52:19
【问题描述】:

我正在尝试为我的数据库创建一个屏幕来插入、上传、删除和显示。这是它的外观。

我正在使用Netezza 数据库系统并从ODBC 获取我的表。首先,我在 Visual Studio 中创建了一个表单应用程序。然后,我在表单中添加了datagrid。感谢datagridview,我通过单击它的图标添加了我的数据源,然后从中选择我的表。当我这样做时,它自动给我带来了一张桌子。

这是它为我生成的代码,用于向我展示表格

this.sPSS_STREAM_INFOTableAdapter.Fill(this.dataSet1.SPSS_STREAM_INFO);

然后,我注意到它还可以生成插入和更新方法,或者我可以重载它们。但是它的语法与我在 netezza 中所知道的不同。我能够完成这样的插入方法。

INSERT INTO "ADMIN"."SPSS_STREAM_INFO" ("IS_AKIS_NO", "IS_AKIS_AD", "IS_AKIS_ACKLM", "PROJE_ADI", "YZLM_OP_ID", "TEST_OP_ID", "KGG_OP_ID") VALUES (?, ?, ?, ?, ?, ?, ?)

所以,我可以通过填充任何列来插入,但我当然需要向 IS_AKIS_NO 写入一些内容,因为即使 Netezza 中没有主键,它的行为就像我的表中的主键,但它不会阻止我添加相同的此处为 IS_AKIS_NO 编号,因为我在 netezza 中没有任何限制。在我插入之前,如何输入sql代码来检查我的第一列中的值是否已经存在?

【问题讨论】:

    标签: c# database insert duplicates netezza


    【解决方案1】:

    如果您的 ID 字段 IS_AKIS_NO 是一个自动递增值,那么您可以创建一个 sequence 来帮助解决您的问题。

    Create a Sequence

    CREATE SEQUENCE IS_AKIS_NOseq as integer
    START WITH 1 increment by 1
    minvalue 1 maxvalue 100000000 no cycle
    

    sequence中检索下一个值

    select NEXT VALUE FOR IS_AKIS_NOseq
    

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 2013-04-11
      • 2011-04-12
      • 1970-01-01
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多