【问题标题】:What's the purpose of ID in this table? [closed]此表中 ID 的用途是什么? [关闭]
【发布时间】:2018-01-15 22:18:02
【问题描述】:

我有这张表,它处理所有用户反馈,我在这张表上有这个 id 列。我不确定它的目的是什么。我也没有在代码中看到任何 id。

PS:我刚从网上得到代码。

<?php
require_once ('database.php');

if (isset($_POST['send'])) {

$full_name = $_POST['full_name'];
$email = $_POST['email'];
$website = ($_POST['website']);
$message = ($_POST['message']);

{
$database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$insert_query = "INSERT INTO tbl_feedback (full_name, email, website, message)
VALUES (?, ?, ?, ?)";

$insert = $database->prepare($insert_query);
$insert->execute(array($full_name, $email, $website, $message));

echo "<script>alert('Successfully sent!'); window.location='feedback.php'</script>";
}
}
?>

【问题讨论】:

  • 请阅读主键。它可能设置为自动增量。检查表结构
  • 通常使用自增主键,如果您不通过 INSERT 语句将特定值放入其中,它们是由数据库生成的。
  • 我认为您接受了错误的答案...@Gordon Linoff 的回答与您的问题更相关。

标签: php html sql database


【解决方案1】:

id 列唯一标识每一行。毫无疑问,它是表的主键

SQL 表通常具有数字主键。它们对于外键引用非常方便。顺便说一下,它们还显示了不同行的插入顺序。拥有这样的主键通常是一种很好的做法。

【讨论】:

  • 谢谢,如果我真的不需要它,我可以删除它吗?
  • 我知道这是一个很好的做法,我只是想知道我是否可以删除它
  • 技术术语是代理键
  • 你可以,但你不应该。如果删除此键,则必须为表选择另一个主键:例如电子邮件
  • @Andre 不,如果您没有编写应用程序,请不要删除它,其他表可能会将其用作外键,删除它会删除这些表之间的关系。跨度>
【解决方案2】:

表的id可以分配给AUTO INCREMENT&它是表的主键。

如果列是 AUTO_INCREMENT(如“id”列)或 TIMESTAMP (如“reg_date”列),不需要在SQL中指定 询问; MySQL 会自动添加值。

-reference

因此无需手动提供 ID。每当用户插入数据 id 时都会自动生成(即最后插入值的 ID +1)

但是在这一行中,当您不向所有列中插入值时,您还必须针对要插入的值指定列名

$insert_query = "INSERT INTO tbl_feedback (full_name, email, website, message)
VALUES (?, ?, ?, ?)";

【讨论】:

  • 你实际上并没有回答问题ID列的目的是什么
  • 用于获取特定id的行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-14
相关资源
最近更新 更多