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