確保在使用SQL插入資料之前進行身份驗證並檢查其在另一個表中的存在
P粉617237727
2023-08-29 00:00:27
<p>我有三个表
第一个表用于文章</p>
<table class="s-table">
<thead>
<tr>
<th>id</th>
<th>内容</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>虚拟内容_1</td>
</tr>
<tr>
<td>2</td>
<td>虚拟内容_2</td>
</tr>
<tr>
<td>3</td>
<td>虚拟内容_3</td>
</tr>
<tr>
<td>4</td>
<td>虚拟内容_4</td>
</tr>
<tr>
<td>5</td>
<td>虚拟内容_5</td>
</tr>
</tbody>
</table>
<p>还有一个用于分类的表</p>
<table class="s-table">
<thead>
<tr>
<th>id</th>
<th>类别名称</th>
<th>蛞蝓</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>电影</td>
<td>电影</td>
</tr>
<tr>
<td>2</td>
<td>男性健康</td>
<td>男性健康</td>
</tr>
<tr>
<td>3</td>
<td>技术</td>
<td>技术</td>
</tr>
<tr>
<td>4</td>
<td>游戏</td>
<td>游戏</td>
</tr>
<tr>
<td>5</td>
<td>食物</td>
<td>食物</td>
</tr>
</tbody>
</table>
<p>还有一个用于为每篇文章定义分类的表</p>
<table class="s-table">
<thead>
<tr>
<th style="text-align: left;">article_id</th>
<th style="text-align: center;">category_id</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: center;">5</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: center;">5</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: center;">1</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: center;">3</td>
</tr>
<tr>
<td style="text-align: left;">3</td>
<td style="text-align: center;">5</td>
</tr>
<tr>
<td style="text-align: left;">3</td>
<td style="text-align: center;">1</td>
</tr>
</tbody>
</table>
<p>我正在使用普通的插入语句将数据插入到第三个表中,
在插入第三个表时,我想要验证是否在第一个和第二个表中找到了它们,即如果我插入以下行</p>
<table class="s-table">
<thead>
<tr>
<th style="text-align: left;">article_id</th>
<th style="text-align: center;">category_id</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">3</td>
<td style="text-align: center;">1</td>
</tr>
</tbody>
</table>
<p>我想要检查是否有文章id为3,并且有分类id为1的记录,
如果其中一个未找到,则取消插入过程
我该如何编写查询语句?</p>
首先,在每個表的
categories
和articles
上將id
列設定為主鍵然後,為這兩個列新增外鍵約束