gpt4 book ai didi

sql - Oracle SQL 无符号整数

转载 作者:行者123 更新时间:2023-12-01 09:01:23 24 4
gpt4 key购买 nike

在Oracle中,相当于MySQL的UNSIGNED是什么?

我有以下查询,但它不起作用:

CREATE TABLE foo
(
id INT UNSIGNED NOT NULL PRIMARY KEY
);

编辑:我的目的是节省空间,因为对于某些字段,我不会使用负值。或者,它会回答我的问题,有人确认我所要求的在 Oracle 11g 中是不可能的,或者如果可能,但并不简单(每个 unsigned int 超过 3 行代码)。

此外,它不一定是关于 int 的。我也使用 smallint 和 tinyint。

最佳答案

如果要匹配显示的限制 here ,您可以使用检查约束:

SQL> create table foo (id number primary key, 
constraint foo_uint_id check (id between 0 and 4294967295));

Table created.

SQL> insert into foo (id) values (-1);

insert into foo (id) values (-1)
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.FOO_UINT) violated

SQL> insert into foo (id) values (0);

1 row created.

SQL> insert into foo (id) values (4294967295);

1 row created.

SQL> insert into foo (id) values (4294967296);

insert into foo (id) values (4294967296)
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.FOO_UINT_ID) violated

SQL> select * from foo;

ID
----------
0
4294967295

关于sql - Oracle SQL 无符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16338044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com