mysql - 如何将 2 列 mysql 复合主键值显示为第三列中的默认值?

标签 mysql default composite-primary-key

我在任何地方都找不到这个(我可能没有问正确的问题)。有人请指出我正确的方向吗?

我在 MySQL 中使用 2 列复合主键。 我想将该值显示为同一个表和另一个表的第三列中的默认值。

Col_1 value = ABC, 
Col_2 value = 123, 
PK          = ABC123, 

Col_3 default value = ABC123 

谁能解释一下如何做到这一点?

如果可能的话,我不想使用触发器或插入语句来执行此操作。

谢谢

特德

最佳答案

在很多情况下,您确实需要该值实际上位于列中。通过在用于获取数据的 select 语句中创建值,或者在 php、ruby 或用于显示数据的任何代码中创建值,您可以多次获得相同的效果。

例如:

SELECT Col_1, Col_2, CONCAT(NEW.Col_1,NEW.Col_2) as Col_3
FROM my_table;

这将为您解决问题,同时避免触发器和其他花哨的 SQL 技巧。

我认为这也是一种更好的方法,以防有人想要更改 Col_1 或 Col_2 的值 - 如果他们更改其中一个值,那么保存这两个值组合的列也必须更新。它使事情变得比需要的更加复杂。

如果您有某种原因它们必须位于数据库表中,请告诉我们。

关于mysql - 如何将 2 列 mysql 复合主键值显示为第三列中的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10527448/

相关文章:

mysql - Laravel mysql 如何计算同一查询中多个表的字段

mysql - 主键也是索引吗?

sql - sqlite中的复合主键

sql - 如何组织良好位置的主键?

mysql - 获取 mysql 中存储的 Proc Schema 名称

php mysql where 子句

php - 在 PHP/MySql 中插入并显示条形码

xslt - 在 XML 源文件中改变 xpath-default-namespace

ios - 在 iOS 设备中获取默认用户电子邮件

character-encoding - sqlite3:无法自动识别查询文件的UTF-8编码