小编My-*_*-Is的帖子

如何使用PostgreSQL中的ALTER TABLE将外键约束添加到同一个表

要创建表我使用:

CREATE TABLE category
(
  cat_id serial NOT NULL,
  cat_name character varying NOT NULL,
  parent_id integer NOT NULL,
  CONSTRAINT cat_id PRIMARY KEY (cat_id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE category
  OWNER TO pgsql;
Run Code Online (Sandbox Code Playgroud)

parent_id是另一个类别的id.现在我有一个问题:如何与其子级级联删除记录?我需要将parent_id设置为cat_id的外键.我试试这个:

  ALTER TABLE category 
ADD CONSTRAINT cat_cat_id_fkey FOREIGN KEY (parent_id)
      REFERENCES category (cat_id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)

但它落在:

ERROR:  insert or update on table "category" violates foreign key constraint "cat_cat_id_fkey"
DETAIL:  Key (parent_id)=(0) is not present in table "category".
Run Code Online (Sandbox Code Playgroud)

postgresql foreign-keys alter-table

5
推荐指数
1
解决办法
2万
查看次数

如何从 ResultSet 中获取值?

我需要从 a 中检索值ResultSet以通过反射来使用它们来调用构造函数。我正在尝试使用 Class.cast(Object),但我总是得到一个InvalidCastException.

这就是我所拥有的:

    Object[] args = new Object[count];
    Class<?>[] arr = co.getParameterTypes(); 
    for(i = 0; i<args.length; i++){

        args[i] = arr[i].cast(rs.getObject(i+1));
    }

    Object t;

    try {
        t = co.newInstance(args);
    } catch (Exception e) {
        throw new RuntimeException(e); 
    }

    return (T)t;
Run Code Online (Sandbox Code Playgroud)

co 是构造函数,rs 是ResultSet我已经拥有的。

java generics jdbc resultset

5
推荐指数
1
解决办法
503
查看次数

ORA-01408:此列列表已编入索引

Oracle SQL-Developer生成已经存在的数据库表(项)的DDL语句.生成的DDL语句无法在新的数据库实例中应用,这很奇怪.这是DDL的简化示例

CREATE TABLE AB
  (
    "A"      NUMBER(*,0),
    "B"   NUMBER(*,0),
    "C" VARCHAR2(255 BYTE),
    CONSTRAINT "CHK_AB_A_NN" CHECK (A       IS NOT NULL) ENABLE,
    CONSTRAINT "CHK_AB_B_NN" CHECK (B       IS NOT NULL) ENABLE,
    CONSTRAINT "PK_AB" PRIMARY KEY ("A", "B")
  );
CREATE INDEX "IDX_AB_A" ON "AB"("A");
CREATE INDEX "IDX_AB_B" ON "AB"("B");
CREATE UNIQUE INDEX "PK_AB" ON "AB"("A", "B");
Run Code Online (Sandbox Code Playgroud)

如果我在新的oracle实例中执行这些语句,我会收到错误:

SQL-Fehler: ORA-01408: Diese Spaltenliste hat bereits einen Index 1. 00000 - "such column list already indexed"

这个错误的原因是什么?

sql oracle oracle-sqldeveloper

5
推荐指数
2
解决办法
2万
查看次数

我应该何时在实践中使用OMT而不是UML类图?

虽然我发现了一篇关于OMTvs.UML的文章但我无法弄清楚使用OMT而不是使用的后果UML- class diagram.OMT相比有UML- class diagram什么好处?到目前为止,我知道我可以用几乎相同的方式来描绘类图UML,或者是否有任何已知的情况只能OMT说明特定的上下文?还有一个更有趣的问题是,用于在两种建模工具之间进行选择的标准是什么?

uml class-diagram

5
推荐指数
1
解决办法
919
查看次数

规范化文件路径

我需要标准化文件路径,以便路径的一部分可以通过String.StartsWith(...)

例子:

  • 完整路径:C:/Common/Dir1/Dir2/file.txt
  • 通用路径:C:\Common\

尽管这两个文件路径是等效的,但公共部分无法通过 方法 进行匹配String.StartsWith(...)

我现在知道API方法:Path.NormalizePath(path, true);可以进行规范化,但不幸的是这个方法是内部受保护的

为了使文件路径标准化,我还有哪些其他机会?Path.GetFullPath(...)可能是可选的,但仅适用于绝对文件路径,因为它会为相对文件路径添加一个前缀,例如: C:/ 。

.net c#-2.0

4
推荐指数
1
解决办法
654
查看次数

如何将证书链添加到JKS

我有一个名为的证书链:cert.cer内容为:

subject= ... OU=MyCA
issuer= ... OU=MyCA
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

subject= ... OU=Client
issuer= .. OU=MyCA
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

我尝试通过调用以下方法将此链添加到JKS:

keytool -import -trustcacerts -file cert.cer -keystore sample.keystore -storepass 123456 -alias chain

,只添加OU = MyCA的顶级证书.

如何将此链正确添加到JavaKeyStore(JKS)?

ssl certificate keystore jks chain

4
推荐指数
2
解决办法
2万
查看次数

ClientRequest,如何正确地将POJO序列化为json数据?找不到内容类型application/json类型的writer:

对于REST服务(RESTeasy),我创建了JUnit测试用例,例如:

@Test
public void a100_insertAddressTest() throws Exception {
     Address addr = new Address(1, "testStreet", "1", (short) 1234,
     "testCity");

    ClientRequest request = new ClientRequest(BASE_URL + "customerID/{id}",
            sslExecutor_schusb);
    request.body(MediaType.APPLICATION_XML, addr).pathParameter(
            "id", 1);
    ClientResponse<String> response = request.post(String.class);

    Assert.assertEquals(201, response.getStatus());

    response.releaseConnection();
    request.clear();
}
Run Code Online (Sandbox Code Playgroud)

如果我将请求主体的媒体类型更改为"application/json",则测试用例将失败并显示错误:

java.lang.RuntimeException: could not find writer for content-type application/json type: at.fhj.ase.dao.data.Address
    at org.jboss.resteasy.client.ClientRequest.writeRequestBody(ClientRequest.java:469)
    at org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor.loadHttpMethod(ApacheHttpClient4Executor.java:221)
    at org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor.execute(ApacheHttpClient4Executor.java:107)
    at org.jboss.resteasy.core.interception.ClientExecutionContextImpl.proceed(ClientExecutionContextImpl.java:39)
    at org.jboss.resteasy.plugins.interceptors.encoding.AcceptEncodingGZIPInterceptor.execute(AcceptEncodingGZIPInterceptor.java:40)
    at org.jboss.resteasy.core.interception.ClientExecutionContextImpl.proceed(ClientExecutionContextImpl.java:45)
    at org.jboss.resteasy.client.ClientRequest.execute(ClientRequest.java:443)
    at org.jboss.resteasy.client.ClientRequest.httpMethod(ClientRequest.java:674)
    at org.jboss.resteasy.client.ClientRequest.post(ClientRequest.java:565)
    at org.jboss.resteasy.client.ClientRequest.post(ClientRequest.java:570)
    at at.fhj.ase.business.ServiceAddressImplTest.a100_insertAddressTest(ServiceAddressImplTest.java:59)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown …
Run Code Online (Sandbox Code Playgroud)

java serialization json resteasy

2
推荐指数
1
解决办法
3815
查看次数

IP标头校验和:0x0000

我有一个通过TLS保护的JAX-RS Web服务。因此,加密非常重要,因此我决定使用RawCap检查网络流量并使用WireShark对其进行分析。这样做时,我偶然发现了以下消息:

Header checksum: 0x0000 [incorrect, should be 0xac15 (may be caused by "IP checksum offload"?)]
Run Code Online (Sandbox Code Playgroud)
  1. 此消息的原因是什么?
  2. 还有其他后果吗?

我非常确定这对我的RESTEasy客户端来说不是问题,因为通过FireFox检索资源会导致相同的消息。

ip networking checksum header traffic

1
推荐指数
1
解决办法
2万
查看次数

创建或替换全局子类型

我知道我可以在包规范中创建一个子类型,例如:

CREATE OR REPLACE PACKAGE XY
AS
  SUBTYPE type_sdebug IS VARCHAR (200);
  ...
END;
/
Run Code Online (Sandbox Code Playgroud)

如果我想在另一个包中使用相同的子类型,那么我需要再次重新定义相同的类型。有没有办法创建或替换全局子类型,例如:

CREATE OR REPLACE TYPE STRING_ARRAY AS VARRAY(500) OF VARCHAR2(30);
/
Run Code Online (Sandbox Code Playgroud)

oracle plsql subtype

1
推荐指数
1
解决办法
544
查看次数