Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从C向SQL表添加顺序编号_C#_Mysql_Sql - Fatal编程技术网

C# 如何从C向SQL表添加顺序编号

C# 如何从C向SQL表添加顺序编号,c#,mysql,sql,C#,Mysql,Sql,我希望我的所有表都包含一个唯一的tableID列编号 这正是我试图完成的,但我的C应用程序 编辑:我只需要添加带有主键和自动递增的ID列。谢谢您,deterministicFail不要从应用程序代码中执行此操作。曾经应用程序代码在保证唯一性方面的定位很差,因为在尝试同时插入的多个客户端之间存在潜在的竞争条件。它也会变慢,因为应用程序代码必须先从数据库请求一个当前值,然后再递增该值,从而导致两个单独的数据库事务 另一方面,数据库已经具有确保原子性和唯一性的特性,并且可以按顺序响应请求,从而使其能够

我希望我的所有表都包含一个唯一的tableID列编号

这正是我试图完成的,但我的C应用程序


编辑:我只需要添加带有主键和自动递增的ID列。谢谢您,deterministicFail

不要从应用程序代码中执行此操作。曾经应用程序代码在保证唯一性方面的定位很差,因为在尝试同时插入的多个客户端之间存在潜在的竞争条件。它也会变慢,因为应用程序代码必须先从数据库请求一个当前值,然后再递增该值,从而导致两个单独的数据库事务

另一方面,数据库已经具有确保原子性和唯一性的特性,并且可以按顺序响应请求,从而使其能够更快更好地完成这项工作。事实上,几乎所有数据库l都内置了此功能。

从错误日志中:

ERROR 1067: Invalid default value for 'Status'
SQL Statement:
ALTER TABLE `lianowar_woodlandlumberbook`.`book`
CHANGE COLUMN `Customer_Ph` `Customer_Ph` VARCHAR(16) NOT NULL ,
CHANGE COLUMN `Status` `Status` VARCHAR(10) NOT NULL DEFAULT NULL ,
DROP PRIMARY KEY,
ADD PRIMARY KEY (`Customer_Name`, `Status`)

ERROR: Error when running failback script. Details follow.

ERROR 1050: Table 'book' already exists
SQL Statement:
CREATE TABLE `book` (
  `Customer_Name` varchar(20) NOT NULL,
  `Customer_Ph` varchar(16) DEFAULT NULL,
  `Customer_Ph2` varchar(30) NOT NULL,
  `Info_Taken_By` varchar(12) NOT NULL,
  `Project_Type` varchar(20) NOT NULL,
  `Project_Size` varchar(20) NOT NULL,
  `Date_Taken` varchar(5) NOT NULL,
  `Date_Needed` varchar(5) NOT NULL,
  `Sales_Order` varchar(5) NOT NULL,
  `Information` text NOT NULL,
  `Status` varchar(10) DEFAULT NULL,
  `tableID` varchar(5) DEFAULT NULL,
  PRIMARY KEY (`Customer_Name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
您尝试定义NOTNULL列并将其设为默认NULL。您应该考虑您的数据类型,TabLID应该是一个数字数据类型BTW,名称不好,只是ID或Booid会更好。 关于你的问题: 您应该这样定义表

CREATE TABLE `book` (
  `ID` INT NOT NULL AUTO_INCREMENT,
  `Customer_Name` varchar(20) NOT NULL,
  `Customer_Ph` varchar(16) DEFAULT NULL,
  `Customer_Ph2` varchar(30) NOT NULL,
  `Info_Taken_By` varchar(12) NOT NULL,
  `Project_Type` varchar(20) NOT NULL,
  `Project_Size` varchar(20) NOT NULL,
  `Date_Taken` varchar(5) NOT NULL,
  `Date_Needed` varchar(5) NOT NULL,
  `Sales_Order` varchar(5) NOT NULL,
  `Information` text NOT NULL,
  `Status` varchar(10) DEFAULT NULL,  
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我不知道您真正需要哪些数据类型,因为我不知道您要存储的数据。但是要使用主键和自动递增功能,这就可以了。

在此处发布代码,而不是链接到外部站点上的图像。有没有理由不使用主键和自动递增功能_increment@deterministicFail我不知道那件事。正在尝试谢谢。您拥有SQL,只需使用ExecuteOnQuery将其发送到服务器即可。可能是个糟糕的设计想法however@deterministicFail我将自动增量添加到SQL表的行中,但出于某种原因,它没有执行该命令。这是日志,再次感谢你。这就解决了问题。我遇到的另一个问题是,当我试图将我的ID列定义为INT时,因为我没有输入一个数字,它对我大喊大叫。我需要像ID INT3这样的东西。它现在好像在工作!