小编Pik*_*ppa的帖子

尝试从表中删除 X 时,表中不存在键列 X

我需要一些帮助。我正在尝试在新的 docker 实例上运行一些迁移脚本(旧的和本地的工作正常)。Mariadb,Innodb 引擎。

我有这样的迁移:

ALTER TABLE userinfo DROP COLUMN barcode
Run Code Online (Sandbox Code Playgroud)

这给了我错误:StatementEnd 错误代码:1072。表中不存在键列“条形码”

该专栏存在!这是我的显示创建表:

CREATE TABLE userinfo (
  id int(11) unsigned NOT NULL AUTO_INCREMENT,
  barcode varchar(45) NOT NULL,
  store_id int(11) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY store_id_barcode_UNIQUE (`store_id`,`barcode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
Run Code Online (Sandbox Code Playgroud)

我尝试了类似的方法ALTER TABLE userinfo ADD KEY "barcode" ("barcode"),但 DROP 语句仍然不起作用。

PS 我从 CREATE 语句中删除了很多列,否则该线程将太长而无法阅读。

alter-table mariadb

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

C中的"remove()"函数不会删除所选文件

我有这个功能:

void aggiornadatabase(void) {
    FILE* fp;
    int c=0;
    char str[30];
    int m;

    sprintf(str, "%s.csv", utenti[posizioneuser].id);
    printf("%s\n", str);
    fp = fopen(str, "w");
    if (fp == NULL)
        printf("Database error\n");
    else
        m = remove(str);

    if (m == 0)
        printf("Success\n");
    else
        printf("Unable to delete the File\n");

    fclose(fp);
}
Run Code Online (Sandbox Code Playgroud)

执行此函数时,它会删除所选.csv文件中的所有内容,但它不会删除文件本身(实际上它会打印"无法删除文件").

为什么会这样?

c file function stream

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

使用 java 流从包含 List<String> 的 List<Object> 中检索 List<String>

我有这种情况:

Class Employee{
//some attributes
List<String> idContract

//getter, setter
}
Run Code Online (Sandbox Code Playgroud)

我需要使用 java 8 流从列表中检索列表 idContracts。

我正在尝试这样的事情:

lst.stream().filter(o->!o.getLstDipFuoriSoglia().isEmpty())
      .map(ResultOdg::getLstDipFuoriSoglia)
      .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

但是,当然,返回一个 List< List < String >>,那么我怎样才能实现这个目标呢?

谢谢你的回答

java java-8

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

标签 统计

alter-table ×1

c ×1

file ×1

function ×1

java ×1

java-8 ×1

mariadb ×1

stream ×1