php - Mysql/php - 是否可以使用循环但没有 key 更新表?

标签 php mysql csv indexing

是否可以在没有主键的情况下创建更新 mysql 表中行的过程?

我有一个这样的表,对应于教师的日程安排:

TEACHER_ID | WEEK_DAY |  HOUR | CLASS

1234567         2        11:30  MAT001
1234567         2        13:00  HIS001

我想加载一个包含他们的时间表的 .csv 文件,该过程会发现其中的行是否已存在于表中,更新它们,或者在不存在的情况下插入它们。

我的表没有主表,因为我们获取 .csv 文件的系统没有创建主表。

我想的是在使用“WHERE”更新/插入表时将字段“TEACHER _ID”、“WEEK_DAY”和“HOUR”组合为键,但我不知道该怎么做.

能达到我想要的吗?你能帮帮我吗?

预先感谢您的回答!

(我提前为我的语法错误道歉)

最佳答案

您可以在 TEACHER_ID,WEEK_DAY,HOUR http://dev.mysql.com/doc/refman/5.0/en/create-index.html

创建一个UNIQUE KEY
CREATE UNIQUE KEY classes ON your_table_name (TEACHER_ID,WEEK_DAY,HOUR)`

然后你可以使用INSERT ... ON DUPLICATE KEY UPDATE http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

INSERT INTO your_table_name (TEACHER_ID,WEEK_DAY,HOUR,CLASS) VALUES (1234567,2,11:30,MAT001)
 ON DUPLICATE KEY UPDATE CLASS=MAT001;

关于php - Mysql/php - 是否可以使用循环但没有 key 更新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606248/

相关文章:

javascript - 如何在弹出页面上显示 Highchart [由按钮触发]

mysql - 无法解析接近于的表名

mysql - PowerApps MySl - 下拉问题

MySQL - 如果第二个 ID 等于 0,则将其替换为第一个 ID

.net - Visual Basic 如何读取 CSV 文件并在数据网格中显示值?

php - 使用自定义值预归档结帐邮政编码

php - Mysql - 许多表只提供 1 个表用于登录目的

PHP 和 MySQL 项目支付

java - .csv 文件中的对齐问题

c - 如何安全解析制表符分隔的字符串?