小编Hex*_*dus的帖子

PostgreSQL 复合主键和串行增量?

我正在尝试创建一个表如下:

CREATE TABLE SCHEDULE (
 SESSIONID                  SERIAL,
 MODULECODE                 VARCHAR(10),
 CONSTRAINT SCHEDULE_FOREIGN_KEY FOREIGN KEY (MODULECODE) REFERENCES MODULES (MODULECODE),
 CONSTRAINT SCHEDULE_PRIMARY_KEY PRIMARY KEY (SESSIONID, MODULECODE));
Run Code Online (Sandbox Code Playgroud)

这个想法是SESSION ID随着每个新行自动递增,但仅限于本地MODULECODE,例如:

----------------------
|SESSIONID|MODULECODE|
|---------|----------|
|    1    |    A     |
|    2    |    A     |
|    3    |    A     |
|    1    |    B     |
|    2    |    B     |
|    1    |    C     |
|    2    |    C     |
|--------------------|
Run Code Online (Sandbox Code Playgroud)

我相信这就是AUTO_INCREMENTMySQL 中的功能,但我怀疑 PostgreSQL 不是这样工作的。我还能如何在 PostgreSQL 中实现这一点?

sql database postgresql postgresql-9.1

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

装配跳/分支/查找表而不是很多cmp/je?

我刚刚开始学习汇编,并且正在制作一个简单的启动加载器作为我的OS类的一部分.我正在努力使我的代码更有效率,即我不认为我到目前为止所做的是实现我想要的特别好的方法.也就是说,我一直在努力寻找任何在线资源,记录跳转/分支/查找表,我认为这是最有效的方法.

为了解释我想要实现的目标,我正在调用一个函数,该函数在dx寄存器中返回一个值,从0到4.目前我正在cmp逐个使用指令来比较值并进行条件je跳转价值是一样的.如果我用更高级别的语言编写这个,我基本上会if一个接一个地做多个语句,而不是使用更有效的switch语句.

所以这就是我现在正在做的事情:

cmp dx, 1          
je .F_1
cmp dx, 2
je .F_2
cmp dx, 3
je .F_3
cmp dx, 4
je .F_4
cmp dx, 0
je .F_5
jmp RangeError_Handler

.F1:
  mov   si, msg1
  jmp   F_Exit
.F2:
  mov   si, msg2
  jmp   F_Exit
...  ; .F3 and .F4 follow the pattern

.F5:             ; special case
  mov   si, msg_error
  call  PrintLn
  hlt

F_Exit:
  call  PrintLn
  ...            ; and do something else


msg1: …
Run Code Online (Sandbox Code Playgroud)

x86 assembly intel nasm x86-16

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

标签 统计

assembly ×1

database ×1

intel ×1

nasm ×1

postgresql ×1

postgresql-9.1 ×1

sql ×1

x86 ×1

x86-16 ×1