簡體   English   中英

如何使用外鍵將數據插入表中

[英]How to insert data into a table with a foreign key

我目前在將值插入到數據庫表中時遇到問題,該數據庫表使用另一個表中的外鍵將is對齊。 這些表非常簡單。 一個保存有關項目的信息,另一個保存項目圖像的值。 這里詳細介紹。

projects

project_id int(50) PRIMARY KEY NOT NULL AUTO_INCREMENT,
project_name varchar(50) NOT NULL,
project_permitted timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "The date that the project took place.",
project_in varchar(50) NOT NULL COMMENT 'The place where the project took place (ie the city and state).',
project_type varchar(50) NOT NULL COMMENT 'The project type (ie residentual, commercial, etc).',
project_description longtext,
project_published timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

這是第二個表,名為project_images

image_id int(50) PRIMARY KEY NOT NULL AUTO_INCREMENT,
project_id int(50),
image_url varchar(50) NOT NULL,
CONSTRAINT fk_projects FOREIGN KEY (project_id) REFERENCES projects(project_id)

我想要做的是使用子查詢從projects表中的project_id將值插入第二個表中。 該查詢如下所示:

insert into project_images (project_id, project_url, project_description) 
values (
(select project_id from projects where project_name = 'The Venue'),
"images/theVenue.png",
"The Venue: an appartment complex in Austin, Texas."
)

通過此查詢,我不斷收到錯誤提示

“您在project_id附近缺少逗號或右括號。”

任何人都可以幫助或指出解決這種情況的最佳方法。

修改查詢使其像

insert into project_images (project_id, project_url, project_description) 
select project_id ,
"images/theVenue.png",
"The Venue: an appartment complex in Austin, Texas."
from projects where project_name = 'The Venue';

在進一步研究了這個問題之后,看來您不能像我使用它那樣使用子查詢來獲取列的值,但是,只要外鍵指向主鍵,就可以直接插入該列。從另一個已經插入的表中。 使用此查詢的全部目的是針對一個PHP項目,因此我想我將在項目中進行一次選擇查詢以獲取其ID,然后將其添加到查詢project_images表的sql中。 這似乎是唯一的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM