在SQL中,如何在现有表中添加新列后添加值?

时间:2015-08-04 11:13:28

标签: sql database

我创建了一个表并插入了3行。然后我使用alter添加了一个新列。如何在不使用任何空值的情况下向列添加值?

7 个答案:

答案 0 :(得分:9)

两种解决方案。

  1. 为列提供默认值。该值最初将用于所有现有行。确切的语法取决于您的数据库,但通常看起来像..
  2. 这样:

    ALTER TABLE YourTable
    ADD YourNewColumn INT NOT NULL
    DEFAULT 10 
    WITH VALUES;
    
    1. 首先添加null值的列。然后更新所有行以输入所需的值。
    2. 像这样:

      ALTER TABLE YourTable
      ADD YourNewColumn INT NULL;
      
      UPDATE YourTable SET YourNewColumn = 10; -- Or some more complex expression
      

      然后,如果需要,请更改列以使其成为not null

      ALTER TABLE YourTable ALTER COLUMN YourNewColumn NOT NULL;
      

答案 1 :(得分:2)

我认为下面的SQL对你有用

update table_name set newly_added_column_name = value;

答案 2 :(得分:2)

为什么不使用UPDATE语句:

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {

    List<Result> _contents;

    public RecyclerViewAdapter(List<Result> contents) {
        this._contents = contents;
    }


    @Override
    public int getItemCount() {
        return _contents.size();
    }

    @Override
    public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = null;
        view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_item_card_small, parent, false);
        return new RecyclerViewAdapter.ViewHolder(view);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Result tempResult = _contents.get(position);
        holder.mTextView.setText(tempResult.getInfo().getCity().getName());
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView mTextView;
        public ViewHolder(View v) {
            super(v);
            mTextView = (TextView) v.findViewById(R.id.text_city_name);
        }
    }
}

WHERE是可选的。例如,在表的T-SQL中:

enter image description here

我可以通过以下语句更新列NewTestColumn:

UPDATE tablename SET column=value <WHERE ...>

答案 3 :(得分:2)

假设您的Employee表最初包含Employee_ID,Emp_Name,Emp_Email这些列。稍后您决定将Emp_Department列添加到此表中。要为此列输入值,您可以使用以下查询:

Update *Table_Name* set *NewlyAddedColumnName*=Value where *Columname(primary key column)*=value

示例update TblEmployee set Emp_Department='Marketing' where Emp_ID='101'

答案 4 :(得分:1)

   update table_name
   set new_column=value

答案 5 :(得分:0)

假设emp是表,而Comm是新列,然后触发以下查询。

更新emp设置Comm = 5000

答案 6 :(得分:0)

Update table table_name set column_name = value where 'condition'; 

我更喜欢使用p.key列以获得最佳结果。