相关疑难解决方法(0)

SQLite添加主键

我使用CREATE TABLE AS语法在Sqlite 中创建了一个基于SELECT语句创建表的表.现在这个表没有主键,但我想添加一个.

执行ALTER TABLE table_name ADD PRIMARY KEY(col1, col2,...)给出语法错误"near PRIMARY"

有没有办法在表创建期间或之后在Sqlite中添加主键?

编辑:"在创作过程中"我的意思是在创作过程中CREATE TABLE AS.

sqlite

96
推荐指数
5
解决办法
13万
查看次数

将CSV导入mysql表

将csv文件上传到mysql表的最佳/最快方法是什么?我想将第一行数据用作列名.

发现这个:

如何将CSV文件导入MySQL表

但唯一的答案是使用GUI而不是shell?

mysql csv import load-data-infile database-table

94
推荐指数
3
解决办法
25万
查看次数

解决方案:此表不包含唯一列.网格编辑,复选框,编辑,复制和删除功能不可用

这不是一个问题,而是我发现的自生问题/问题和解决方案.我认为分享是不错的礼貌,因为我找不到完整的工作解决方案.

phpMyAdmin中生成的错误是:

"此表格不包含唯一列.网格编辑,复选框,编辑,复制和删除功能不可用."

根据您的具体情况,有几种可行的解决方案.

例如,只要您的所有AI或唯一标识符字段都是唯一的,您就可以简单地更改表并确保这是主键并设置为唯一值.

我在其中一张桌子上用这个解决方案解决了这个问题.

另一个表有多个AI int值,它们是Primary字段,但是有多个相同类型的值.

对此的简单修复就是将一列添加到表的末尾,作为Unique AI Int.基本上所有MySQL都说它需要在每条记录中使用唯一值来区分行.

希望这有用.

php mysql database phpmyadmin

55
推荐指数
5
解决办法
14万
查看次数

使用序列号mysql更新列

我有一个列的表:(这只是一个例子,我有50K记录)

Name,   Number

Joe     Null
Michael Null
Moses   Null
Run Code Online (Sandbox Code Playgroud)

我用1-3中的序号来更新数字,所以它看起来像这样:

Name,   Number

Joe     1
Michael 2
Moses   3
Run Code Online (Sandbox Code Playgroud)

如何在一个SQL命令的SQL for Mysql中执行此操作

mysql sql sorting

35
推荐指数
2
解决办法
4万
查看次数

将主键添加到alembic中的现有MySQL表

我正在尝试使用alembic将'id'主键列添加到已存在的MySQL表中.我试过以下......

op.add_column('mytable', sa.Column('id', sa.Integer(), nullable=False))
op.alter_column('mytable', 'id', autoincrement=True, existing_type=sa.Integer(), existing_server_default=False, existing_nullable=False) 
Run Code Online (Sandbox Code Playgroud)

但得到以下错误

sqlalchemy.exc.OperationalError: (OperationalError) (1075, 'Incorrect table definition; there can be only one auto column and it must be defined as a key') 'ALTER TABLE mytable CHANGE id id INTEGER NOT NULL AUTO_INCREMENT' ()
Run Code Online (Sandbox Code Playgroud)

看起来像是由alembic生成的sql语句没有PRIMARY KEY在alter语句的末尾添加.我可以错过一些设置吗?

提前致谢!

python sqlalchemy alembic

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

将列ID添加到现有表

我试图添加列ID,它将是具有自动增量属性的主键.所以我执行这个SQL查询:

ALTER TABLE  `user_info` ADD  `id` INT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;
Run Code Online (Sandbox Code Playgroud)

该列已成功创建,甚至为现有数据创建id.

但我不能再在桌子里插入任何东西了.

<?php
require "init.php";
$name=$_POST["user"];
$user_email=$_POST["user_email"];
$user_pass=$_POST["user_pass"];

$sql_query="SELECT * FROM user_info WHERE user_email='$user_email'";
$check=mysqli_fetch_array(mysqli_query($con,$sql_query));

if(isset($check)){
	$response["success"]=false;
	$response["message"]="Email already exists";
	echo json_encode($response);
}else{

	$sql_query="insert into user_info values('$name','$user_email','$user_pass');";

if(mysqli_query($con,$sql_query)){
	//echo "<h3> Data Insert success</h3>";
    $response["success"]=true;
	$response["message"]="Registration successful";
	echo json_encode($response);
}
else{
	 $response["success"]=false;
	$response["message"]="Registration unsuccessful";
	echo json_encode($response);
}

}




?>
Run Code Online (Sandbox Code Playgroud)

我google了一下,发现我可以插入0或null代替我的id.

我故意读到:

为了利用列的自动递增功能,在插入行时不要为该列提供值.数据库将为您提供一个值.

当我删除列id时,代码运行良好,但是当我添加它时,我得到响应Registration unsuccessful在我的json中.

这里这里的解决方法似乎没有解决我的问题.

我错过了什么?

php mysql

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